ASP.Net仅向经过身份验证的用户提供访问/浏览权限

时间:2012-01-06 11:00:29

标签: asp.net web-services

在我的webservice应用程序的根目录中,我有一个包含一些htmltxt文件的目录。只应向经过身份验证的用户访问这些文件。我怎么能做到这一点?

这是我的问题的后续跟进:ASP.Net Directory Security

我按照Shark在该帖子上的建议实施了HttpHandler。它允许htmltxt文件处理,但我也无法向经过身份验证的用户显示这些文件。


更新:我通过检查处理程序上的会话解决了这个问题。在服务器上托管这个时我遇到了另一个问题。即我的自定义处理程序没有被调用。我在http://msdn.microsoft.com/en-us/library/bb515343.aspx

上找到了该问题的原因和解决方案

原因:

  

默认情况下,Internet信息服务(IIS)传递请求   只有某些文件类型要ASP.NET来提供服务。带文件名的文件   扩展名如.aspx,asmx和.ashx已映射到   ASP.NET ISAPI扩展(Aspnet_isapi.dll)。

解决方案:

  

要让IIS将其他文件扩展名传递给ASP.NET,您必须这样做   在IIS中注册扩展名。


整个故事: http://www.naveenbhat.in/2012/06/directory-security-on-webservice-with.html

1 个答案:

答案 0 :(得分:1)

如果您使用的是ASP.Net Security(表单/ Windows身份验证),则只需通过web.config设置进行控制即可。像这样:

<system.web>

  <authentication mode="Forms">
  </authentication>

   <location path="directoryPath"> 
      <system.web>
         <authorization>
            <deny users="?"/> // this will deny access to anonymous users
         </authorization>
      </system.web>
   </location>

</system.web>