sql sessionState超时与表单身份验证超时

时间:2011-04-27 12:13:50

标签: asp.net

如果会话空闲了5分钟,我想在登录页面上显示“你的会话已经过期”。

Sql会话状态和表单身份验证超时的超时值应该是什么:

  
      
  1. 相同?
  2.   
  3. 会话状态>表格暂停
  4.   
  5. 表格超时>会议时间。
  6.   

理想情况下,如果有人能够解释上述差异,将会受到赞赏。

目前,我的代码如下所示,即使在登录重定向为空闲5分钟后,Session [“SessionID”]也不是空的:

On Session_Start()
 Session["SessionID"] = Guid.NewGuid();

在LogOn.cshtml上:

 @{
        string sessionExpiredMsg = string.Empty;

        HttpContext ctx = HttpContext.Current;
        if (ctx.Session["SessionID"] == null)
        {
            sessionExpiredMsg = "Your session has expired. Please re-login again.";
        }
    }
@

在web.config上:

<sessionState
timeout=5....

<authentication mode="forms"
 timeout=5....

谢谢。

1 个答案:

答案 0 :(得分:5)

  • 会话状态超时意味着您的asp.net会话将在x分钟后到期。这并不意味着你的身份不再被认证。
  • 表单超时意味着在x分钟后,系统会提示您再次登录(不再进行身份验证)。

如果您的会话状态超时持续时间超过表单超时,则不会出现问题,因为一旦您再次登录,如果未过期,您将检索最后一个。