gpt4 book ai didi

c# - 当用户(尚未)获得授权时,ASP.NET(3.5,Webforms)无法正确加载 CSS

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:25 28 4
gpt4 key购买 nike

我这里有一个非常奇怪的问题...我继承了一个相当大的 ASP.NET 3.5 Webforms 元素,一个问题是当启动应用程序时,会显示登录页面 - 但没有任何样式。 ...

这是 Login.aspx 标记(已简化):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" 
Inherits="MyWeb.Web.Login" MasterPageFile="~/MyWebPublic.Master"
UICulture="Auto" Culture="Auto" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
... some div's, textboxes etc.
</asp:Content>

此页面基于“公共(public)”母版页 - 如下所示:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MyWebPublic.Master.cs" Inherits="MyWeb.MyWebPublic" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<link rel="stylesheet" type="text/css" href="styles/style.css" media="screen" />
<link rel="stylesheet" type="text/css" href="styles/layout.css" media="screen" />
</head>
<body>
...
</body>

因此您可以看到 - 我的母版页中确实有指向两个 CSS 样式表的链接,它们实际上存在。

我的 web.config,我特别允许所有人(甚至是非授权用户)访问我的登录页面:

<!-- Allow access to login page for everyone -->
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

然而 - 当我运行该元素时,我得到一个没有应用任何 CSS 的丑陋页面。在 Firefox 错误控制台中,我发现:

The stylesheet http://localhost:50855/Login.aspx?ReturnUrl=%2fstyles%2flayout.css was not loaded because its MIME type, "text/html", is not "text/css". Login.aspx
The stylesheet http://localhost:50855/Login.aspx?ReturnUrl=%2fstyles%2fstyle.css was not loaded because its MIME type, "text/html", is not "text/css".

所以看起来好像 ASP.NET 正在尝试加载 CSS,确定这是一个未经授权的用户,并重定向到登录页面 - 即使在尝试加载 CSS 时也是如此!

登录后 - 一切正常,我的 CSS 已按预期应用...

这里到底发生了什么??我以前从未见过这种行为 - 在所有其他情况下,即使是您到达的第一页(登录或其他方式)也会通过应用引用的 CSS 获得其正确的样式......

有什么想法、想法吗?

最佳答案

您授权任何用户访问登录页面,但不能访问样式目录中的内容。由于 css 是通过 ASP.NET 提供的,因此在用户通过身份验证之前不允许访问。将以下内容添加到现有位置元素下的 web.config。

<location path="styles">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

另请检查此链接以获取可能的解决方案:https://stackoverflow.com/a/804061/1444207

关于c# - 当用户(尚未)获得授权时,ASP.NET(3.5,Webforms)无法正确加载 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301892/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com