2

我们有一个使用表单身份验证和在 IIS7 中启用匿名身份验证的站点。

但是,通过上述设置,每个人都可以访问本站点中的静态文件,例如 CSS、JavaScript 和 Html。

如果我禁用匿名身份验证,用户将无法访问登录页面,因为他们尚未登录。

据我了解,表单身份验证需要启用匿名身份验证。

那么如何保护所有资源文件呢?

谢谢 !

4

2 回答 2

3

为了使每个文件都受到表单身份验证的保护,请通过 asp .net 管道路由所有请求。这不是 IIS 的默认行为。对于静态内容的文件,IIS 通常根据站点级别描述的设置(即匿名、基本、Windows、摘要)来分发它们。

虽然你可以做我提到的事情,但我会质疑你为什么要这样做。这增加了开销,因为 .NET 管道将开始处理每个文件以确定是否提供它。

可行,但不推荐。

于 2012-09-17T19:17:04.663 回答
0

我想我有点找到答案了。

根据@Josh 的回答,我发现这个页面讨论了如何对整个应用程序使用表单身份验证。

我认为它就像我想要的那样工作。

  1. 您需要安装 Url Authorization 功能

  2. 将以下内容添加到您的 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" />

于 2012-09-17T20:17:57.903 回答