gpt4 book ai didi

c# - 创建 session 时 ASP.NET C# CSS 丢失

转载 作者:行者123 更新时间:2023-11-30 17:59:11 26 4
gpt4 key购买 nike

请帮忙!!我正在使用 visual studio,在 ASP.NET C# (.Net 4) 中编程:我是一名 PHP 转换者,试图使用 session 创建一个简单的登录页面。由于我是 ASP.NET 的新手,所以我从互联网上的某个地方使用了这段代码:

登录.aspx:

<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
<asp:Button ID="submit" runat="server" Text="Submit" onclick="submit_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

登录.aspx.cs:

protected void send_Click(object sender, EventArgs e)
{
if (txtUserName.Text == "admin" && txtPassword.Text == "admin")
{
Session["Authenticate"] = "Yes";
Response.Redirect("Default.aspx");
}
else
Label1.Text = "Login failed";
}

全局.asax.cs

void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Session["Authenticate"] = "";
CheckLogin();
}
void Application_OnPostRequestHandlerExecute()
{
CheckLogin();
}

void CheckLogin()
{
string Url = Request.RawUrl;
int count = Url.Length - 10;
string TestUrl = Url.Substring(count);
string SessionData = Session["Authenticate"].ToString();
if (SessionData == "" && TestUrl != "Login.aspx")
{
Response.Redirect("~/Login.aspx");
}
}

每当我尝试在浏览器中运行此代码时,我的 CSS 文件都不会加载。这似乎链接到 global.asax 文件,因为如果我在我的 global.asax.cs 片段中注释掉上面显示的所有代码,css 加载正确。

我尝试通过源代码在浏览器中打开css文件,出现如下错误:

Session state is not available in this context.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: Session state is not available in this context.

Source Error:


Line 45: int count = Url.Length - 10;
Line 46: string TestUrl = Url.Substring(count);
Line 47: string SessionData = Session["Authenticate"].ToString();
Line 48: if (SessionData == "" && TestUrl != "Login.aspx")
Line 49: {

Source File: D:\MyTestWebsite\Global.asax.cs Line: 47

我也尝试过使用 App_Themes 的主题并在 Web.config 中定义它 - 出现了同样的问题。 css 仅在删除 session 相关代码时显示。

知道是什么原因造成的吗???

最佳答案

问题是您在尝试加载静态资源和动态页面时检查登录。某些文件(例如全局 CSS)应该可用于完全匿名访问,而不是在身份验证逻辑后面进行门控。

您肯定是在重新发明轮子,因为由大型成员(member)提供商库支持的内置表单例份验证为您提供了丰富的扩展基础。如果您确实选择继续使用此方法,我的建议是在要求身份验证之前查询请求的文件并确保他们请求的是 aspx(假设您没有使用 url 重写)。

关于c# - 创建 session 时 ASP.NET C# CSS 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429246/

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