【问题标题】:How is asp.net Authorization Rule preventing CSS to be appliedasp.net 授权规则如何防止 CSS 被应用
【发布时间】:2013-01-26 08:30:38
【问题描述】:

我正在使用 <deny users="?"/> 阻止匿名访问我的 Web 应用程序。由于我希望匿名用户可以访问登录页面,因此我使用了以下规则

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

由于此规则阻止将 css 应用于登录页面,因此我使用了附加规则

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

修复了它,现在 css 已应用于登录页面。但是在应用上述附加规则之前,我在浏览器中检查了页面的来源,发现存在&lt;link href="Style.css" rel="stylesheet" type="text/css" /&gt; 的条目并单击链接,浏览器确实将我带到了我的 css 文件并显示了所有样式。所以我想知道页面是否可以访问“Style.css”,究竟是什么阻止了浏览器将样式应用于不同的元素。

【问题讨论】:

  • 实际上 并没有阻止匿名访问您的站点,它只允许所有经过身份验证的用户。这一行 是防止匿名用户的一种。尝试在 之后添加它。
  • 抱歉没找到你。我有没有说&lt;allow users="?"&gt; 阻止任何人?我已经通过使用 来阻止用户登录页面
  • hahah.. 对不起,我的第一句话中没有看到你的 .. XD
  • :) 我只对 CSS 感到好奇。如果浏览器知道它在哪里并且可以读取它。是什么阻止它将 CSS 应用到页面?
  • 什么版本的 ASP.NET 和 IIS?如果您再次删除规则,此行为是否可重复?如果您在启用开发者工具的情况下在 Chrome 中加载页面并查看网络选项卡,CSS 文件会显示什么?

标签: asp.net asp.net-authorization


【解决方案1】:

我再次删除了额外的测试规则。

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

我检查了浏览器中 CSS 文件的状态,由 cmets 中的 @explunit 指定。这次的状态是 302 found 并且点击 CSS 链接不显示 CSS 文件。我认为 CSS 被浏览器缓存了,这就是它第一次显示它的原因。

【讨论】:

    猜你喜欢
    • 2012-11-04
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多