如果您使用 cookie,您可以在 cookie 中存储一个标记,以便区分“新浏览器 + 新会话”和“旧浏览器 + 过期会话”。
下面是在会话过期时将用户重定向到过期页面的示例代码。
void Session_OnStart(Object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
HttpCookieCollection cookies = context.Request.Cookies;
if (cookies["starttime"] == null) {
HttpCookie cookie = new HttpCookie("starttime", DateTime.Now.ToString());
cookie.Path = "/";
context.Response.Cookies.Add(cookie);
}
else {
context.Response.Redirect("expired.aspx");
}
}
如果您尝试实现会话,这可能会对您有所帮助http://aspalliance.com/1621_Implementing_a_Session_Timeout_Page_in_ASPNET.2