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