【问题标题】:CSS not being applied on non authenticated ASP.NET pageCSS 未应用于未经身份验证的 ASP.NET 页面
【发布时间】:2010-09-08 12:12:17
【问题描述】:

在开发(实时运行)时,我们网站的页面在用户通过身份验证(登录)之前不会选择正确的 CSS。

所以登录和注销表单看起来很糟糕,但是一旦进入站点,CSS 就会再次起作用。

我猜这是某种身份验证问题?并没有真正深入研究它,因为它只是在开发时工作,所以不是一个大问题,但很高兴知道如何解决它。

【问题讨论】:

    标签: asp.net css


    【解决方案1】:

    要允许未经身份验证的用户查看您的 .css 文件(或任何其他文件/目录),您可以将 location 元素添加到指向 .css 文件的 web.config 文件。

    <configuration>
       <system.web>
          // system.web configuration settings.
       </system.web>
       <location path="App_Themes/Default/YourFile.css">
          <system.web>
             <authorization>
                <allow users="*"/>
             </authorization>
          </system.web>
       </location>
    </configuration>
    

    【讨论】:

      【解决方案2】:

      检查并确保 CSS 文件本身不在您要保护的区域中。如果需要,您可以通过 web.config 手动排除该文件。

      【讨论】:

      • 通过在 部分添加以下内容手动排除:
      • 这很好。那么它在您的生产环境中是如何工作的呢?除非您的 dev web.config 中缺少此部分,否则您应该在那里遇到同样的问题
      • 我有同样的问题 - 登录页面在开发中没有样式,在生产中很好。除了连接字符串和调试设置外,web.config 完全相同。这个解决方案没有为我解决问题。
      • 更正:有一个愚蠢的时刻,如果您指定整个路径,它确实有效,例如path="App_Themes/Theme" 或 path="App_Themes/Theme/file.css"
      • 我发现这并没有解决我的问题。我为某些人发现它与 IIS 7 有关。看看这些是否有帮助:stackoverflow.com/questions/6531250/…forums.iis.net/p/1173012/1961218.aspx
      【解决方案3】:

      我自己也遇到了这个问题,手动添加位置没有任何区别。我发现我已授予 IIS_IUSRS 对文件夹的访问权限,因此我的应用程序池访问文件没有问题,但 IIS 使用 IUSR 帐户进行匿名访问。

      要修复它,我打开了 IIS 管理器 -> IIS:身份验证 -> 选择“匿名身份验证” -> 单击操作:编辑..(或右键单击)-> 选择“应用程序池标识”

      现在匿名访问尝试使用具有正确文件权限的 IIS_IUSRS。

      【讨论】:

      • 就是这样!谢谢你的回答。
      【解决方案4】:

      您能否尝试使用FiddlerHttpWatch 之类的工具,并检查登录页面是否确实有请求访问.css 文件。验证返回码是否为 200。可能是因为您的开发框中的相对路径问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-05
        • 2014-07-09
        • 2017-03-25
        • 2016-11-30
        • 1970-01-01
        相关资源
        最近更新 更多