检测会话超时/区分第一次访问&会话超时

时间:2010-08-12 19:42:09

标签: c# asp.net asp.net-mvc

当用户进入登录页面时,我想检测他们的会话是否超时并被重定向到此页面,因此可以显示友好的消息。

当会话是新会话且cookie [“ASP.NET_SessionId”]不为null时,我设置isTimeout = true。但isTimeout设置为true,如果它也是第一次访问。如何区分首次访问和超时?

提前致谢!

1 个答案:

答案 0 :(得分:1)

Global.asax 中,有一个名为 Session_End 的方法来处理此问题。

您可以使用它来添加所需的任何功能。例如将TempData [“IsTimeout”]设置为true(如果您使用的是ASP.NET MVC)。然后,这将保留在重定向之后,并可在您的登录视图中访问。它将被销毁。

E.g。在你的Global.asax.cs

protected void Session_End(Object sender, EventArgs e) 
{ 
    TempData["IsTimeout"] = true;
} 

在您的登录视图中:

<%: ((bool)(TempData["IsTimeout"] ?? false)) ? "For security reasons you were timed out, please log in again" : "" %>