结束会话后 ASP.NET 不会自动重定向到 defaultURL

Posted

技术标签:

【中文标题】结束会话后 ASP.NET 不会自动重定向到 defaultURL【英文标题】:ASP.NET not redirecting to defaultURL automatically after ending session 【发布时间】:2013-05-01 01:48:00 【问题描述】:

这似乎是一个非常微不足道的问题,但我仍然无法让它运行。我正在构建一个 asp.net Web 应用程序,我在这里使用表单身份验证。我遵循了以下步骤。

1) 在 web.config 中这是条目

认证>

2) 在 default.aspx 中,我使用了自定义身份验证,身份验证通过后,我将重定向到 web.config 中提到的 defaultUrl。以下是代码。这工作正常。

会话[“测试”] =“测试”; FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);

Login1是asp.net的登录控件。

3) 在 StockTips.aspx(默认 URL)中,在注销链接按钮单击事件中,我试图放弃会话,以便它自动重定向到 loginurl(默认 URL)。这没有发生。它停留在同一页面上,即 StockTips.aspx。以下是代码。

protected void lnkLogout_Click(对象发送者,EventArgs e) 字符串 str = Session["test"].ToString(); 会话.Abandon(); //Session.RemoveAll(); //Session.Clear(); //Response.Cookies.Remove("ASP.NET_SessionId"); //Response.Cookies["ASP.NET_SessionId"].Value = string.Empty; //Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); //FormsAuthentication.SignOut(); 字符串 str1 = Session["test"].ToString();

Session["test"] 中的值也保留。我已经尝试了上面的注释代码。我不想将 Response.Redirect 显式写入 loginurl,因为我很确定一旦会话被放弃,它会自动重定向到 loginurl。但不知何故,它不起作用。

我不确定以下信息是否会有所帮助,但仍想添加它。我有一个母版页,其中 default.aspx 和 stocktips.aspx 都打开。 LinkBut​​ton 在 stocktips.aspx 内部而不是在母版页上。

如果您需要我方面的任何进一步信息,请告诉我。

请帮忙!

提前致谢。

问候,

萨马尔

【问题讨论】:

【参考方案1】:

配置

<forms name="WhateverYourAuthNameIs" 
   loginUrl="~/HomePage.aspx" 
   defaultUrl="~/Default.aspx" 
   protection="All" path="/" 
   cookieless="AutoDetect"/>

也可以试试 Js 代码

<body onload="window.setTimeout(function()document.location.href='/Home.aspx';,30000);">

希望对你有帮助

【讨论】:

在“form”标签的“name”属性中写上“WhateverYourAuthNameIs”。默认情况下它是“.ASPXAUTH”。我应该输入什么而不是“WhateverYourAuthNameIs”? 您的身份验证模式是什么?如果您使用 ASP.Net 表单身份验证,则 name 属性下是“MyAuthCookie”。 我认为您的代码会话即将结束,但仍然单击任何导致回发 asp.net 的按钮不会自动重定向到 loginUrl。我是否对 ASP.NET 期望过高?是不是asp.net在会话到期后没有重定向到loginUrl,我必须自己做?

以上是关于结束会话后 ASP.NET 不会自动重定向到 defaultURL的主要内容,如果未能解决你的问题,请参考以下文章

Session.Abandon 不会自动重定向到 asp.net 中的 loginurl

重定向后 ASP Net Core 2.2 会话丢失

如何在asp.net中恢复会话

在asp.net mvc中注册成功(重定向到登录)后用户名自动填写登录页面

会话超时后自动重定向到登录页面 - JSP,Spring

asp.net c# - 设置会话然后通过 global.asax 重定向用户