我们有一个使用表单身份验证的站点,在IIS7中启用了匿名身份验证。
但是,通过以上设置,每个人都可以访问此站点中的静态文件,例如CSS,JavaScript和Html。
如果我禁用匿名身份验证,则用户无法访问登录页面,因为他们尚未登录。
据我了解,Forms身份验证需要启用匿名身份验证。
那么如何保护所有资源文件?
谢谢!
答案 0 :(得分:3)
为了通过表单身份验证保护每个文件,通过asp .net管道路由所有请求。这不是IIS的默认行为。对于静态内容的文件,IIS通常会根据站点级别(即匿名,基本,Windows,摘要)中描述的设置将其分发。
虽然你可以做我提到的事情,但我会质疑你为什么要这样做。这会增加开销,因为.NET管道将开始处理每个文件以确定是否提供它。
可行,但不推荐。
答案 1 :(得分:0)
我想我找到了答案。
基于@Josh的回答,我发现这个page正在讨论如何对整个应用程序使用表单身份验证。
我觉得它的效果就像我想要的那样。
您需要安装网址授权功能
将以下内容添加到您的web.config
< system.webServer>
<模块>
<删除name =“FormsAuthenticationModule”/>
< add name =“FormsAuthenticationModule”type =“System.Web.Security.FormsAuthenticationModule”/>
<删除name =“UrlAuthorization”/>
< add name =“UrlAuthorization”type =“System.Web.Security.UrlAuthorizationModule”/>
<删除name =“DefaultAuthentication”/>
< add name =“DefaultAuthentication”type =“System.Web.Security.DefaultAuthenticationModule”/>