在我的webservice应用程序的根目录中,我有一个包含一些html
和txt
文件的目录。只应向经过身份验证的用户访问这些文件。我怎么能做到这一点?
这是我的问题的后续跟进:ASP.Net Directory Security
我按照Shark在该帖子上的建议实施了HttpHandler
。它允许html
和txt
文件处理,但我也无法向经过身份验证的用户显示这些文件。
更新:我通过检查处理程序上的会话解决了这个问题。在服务器上托管这个时我遇到了另一个问题。即我的自定义处理程序没有被调用。我在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
答案 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>