Это мой базовый класс для всех страниц, кроме EndSession.aspx
override protected void OnInit(EventArgs e) {
base.OnInit(e);
if (Context.Session != null)
{
//check the IsNewSession value, this will tell us if the session has been reset.
//IsNewSession will also let us know if the users session has timed out
if (Session.IsNewSession)
{
//now we know it's a new session, so we check to see if a cookie is present
string cookie = Request.Headers["Cookie"];
//now we determine if there is a cookie does it contains what we're looking for
if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0) )//&& !Request.QueryString["timeout"].ToString().Equals("yes"))
{
//since it's a new session but a ASP.Net cookie exist we know
//the session has expired so we need to redirect them
Response.Redirect("EndSession.aspx?timeout=yes");
}
}
}
}
Но в EndSession я пытаюсь перейти обратно, скажем, default.aspx, и затем этот код выше просто перенаправляет обратно в EndSession.aspx.
Итак, для более ясного объяснения: Шаг 1: перейдите на mypage.aspx Шаг 2: дождитесь тайм-аута Шаг 3: попытайтесь отойти на шаг Шаг 4: перенаправьте на EndSession.aspx Шаг 5: попробуйте перейтипрочь Шаг 6: GoTo set 4
Setp 6 должен быть в состоянии уйти ...
(при необходимости, пожалуйста, попросите дальнейших разъяснений)
Есть идеи?
СПАСИБО !!!