CSS 未应用于未经身份验证的 ASP.NET 页面

CSS 未应用于未经身份验证的 ASP.NET 页面

CSS not being applied on non authenticated ASP.NET page

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

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

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


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

1
2
3
4
5
6
7
8
9
10
11
12
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

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


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

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

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


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


推荐阅读