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