如何使用ASP.NET授权允许访问.css文件?

9
<authentication mode="Forms">
      <forms loginUrl="Login.aspx"/>
</authentication>
<authorization>
      <deny users="?"/>
</authorization>

我正在使用表单身份验证,在使用上述参数时,整个文档的CSS格式不会被应用,而是消失了。我该怎么做才能使CSS保持完整。

4个回答

20

我假设您的登录表单有一个外部CSS文件,并且您正在使用Cassini或IIS 7集成模式。

您的<deny users="?"/>阻止匿名用户查看登录表单的CSS文件。

您需要使用<location>元素允许匿名用户查看CSS文件,像这样:

<location path="CSS">
    <system.web>
        <authorization>
            <allow users="?"/>
        </authorization>
    </system.web>
</location>

1
我遇到了同样的问题,这个解决方案对我没有用。我的web config中甚至没有拒绝用户的设置。 - Eric Z Beard
2
我找到了解决方法。在设置新的IIS应用程序时,我错过了清单中的某些内容:选择应用程序,双击“身份验证”,选择“匿名身份验证”,然后进行编辑,并将其更改为使用应用程序池标识。确保该用户对包含站点的文件夹具有权限。 - Eric Z Beard

6
使用location元素来允许访问您的CSS:
<configuration>
   <location path="style.css">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>

<location path="style.css"> <system.web> <authorization> <allow users="*"> </allow> </authorization> </system.web> </location> 我正在尝试这个,最终你的解决方案指出了我的错误所在。 - Chaitanya

0
<location path="Images">
<system.web>
  <authorization>
    <allow users="?"/>
  </authorization>
</system.web>

**


-2
请将以下代码添加到Web配置文件中:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB"/>


答案不相关,也没有解释为什么应该添加这段代码。 - LazyTarget

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接