使用IIS7中的表单身份验证保护静态文件

时间:2012-09-17 18:56:11

标签: asp.net iis-7 forms-authentication

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

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

可行,但不推荐。

答案 1 :(得分:0)

我想我找到了答案。

基于@Josh的回答,我发现这个page正在讨论如何对整个应用程序使用表单身份验证。

我觉得它的效果就像我想要的那样。

  1. 您需要安装网址授权功能

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