CSS 未应用于未经身份验证的 ASP.NET 页面
Posted
技术标签:
【中文标题】CSS 未应用于未经身份验证的 ASP.NET 页面【英文标题】:CSS not being applied on non authenticated ASP.NET page 【发布时间】:2010-09-08 12:12:17 【问题描述】:在开发(实时运行)时,我们网站的页面在用户通过身份验证(登录)之前不会选择正确的 CSS。
所以登录和注销表单看起来很糟糕,但是一旦进入站点,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 手动排除该文件。
【讨论】:
通过在我自己也遇到了这个问题,手动添加位置没有任何区别。我发现我已授予 IIS_IUSRS 对文件夹的访问权限,因此我的应用程序池访问文件没有问题,但 IIS 使用 IUSR 帐户进行匿名访问。
要修复它,我打开了 IIS 管理器 -> IIS:身份验证 -> 选择“匿名身份验证” -> 单击操作:编辑..(或右键单击)-> 选择“应用程序池标识”
现在匿名访问尝试使用具有正确文件权限的 IIS_IUSRS。
【讨论】:
就是这样!谢谢你的回答。【参考方案4】:您能否尝试使用Fiddler 或HttpWatch 之类的工具,并检查登录页面是否确实有请求访问.css 文件。验证返回码是否为 200。可能是因为您的开发框中的相对路径问题。
【讨论】:
以上是关于CSS 未应用于未经身份验证的 ASP.NET 页面的主要内容,如果未能解决你的问题,请参考以下文章
当用户未经身份验证时,ASP.NET Core 5 Web API 返回 404 代码而不是 401