检测asp.net页面中的超时并重定向到登录
我正在使用Global.asax中的以下代码来检测asp.net应用程序中的超时检测asp.net页面中的超时并重定向到登录,asp.net,.net,session,Asp.net,.net,Session,我正在使用Global.asax中的以下代码来检测asp.net应用程序中的超时 protected void Session_Start(object src, EventArgs e) { if (Context.Session != null && Context.Session.IsNewSession) { string sCookieHeader = Request.Headers["Cookie"];
protected void Session_Start(object src, EventArgs e)
{
if (Context.Session != null && Context.Session.IsNewSession)
{
string sCookieHeader = Request.Headers["Cookie"];
if (null != sCookieHeader && sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0)
Response.Redirect("~/TimeoutMessage.aspx");
}
}
但是,当我单击timeoutmessage.aspx页面上的一个超链接(该超链接本应将用户重定向到登录名)时,上面的代码工作得很好,它只会不断将自己重定向到超时页面。检查这一点的最佳位置是页面中的Oninit事件。请创建从System.Web.UI.page继承的基本页,并重写oninit事件。把你的代码放在那里。然后从此基页继承该页。它会很好用的
public class BasePage:System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
if (Context.Session != null && Context.Session.IsNewSession)
{
string sCookieHeader = Request.Headers["Cookie"];
if (null != sCookieHeader && sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0)
Response.Redirect("~/TimeoutMessage.aspx");
}
base.OnInit(e);
}
}
您在Visual Studio中进行过任何调试吗?sCookieHeader的值是多少?ScookeHeader.IndexOf(“ASP.NET_SessionId”)的返回值是多少?我仍然面临检测到时间并重定向到“Timeoutmessage.aspx”页面上的相同问题“Timeoutmessage.aspx页面重定向到登录名的超链接只是保持重定向到Timeoutmessage.aspx页面HI login.aspx不应继承基本页面。这将解决问题