ASP.NET会话超时太早了

时间:2010-06-02 14:04:11

标签: asp.net session

我正在尝试在经过身份验证的用户创建新会话时创建日志,但由于某种原因,我遇到了奇怪的行为。为了测试,我在web.config中将会话超时设置为2分钟:

<sessionState cookieName="AppName_SessionId" timeout="2" />   

在Global.asax.vb中,我有以下代码记录:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)

   If My.User.IsAuthenticated = True Then
      Log.Create()
   End If
End Sub

登录后一切正常,关闭浏览器并重新打开。当我在会话中访问页面时,它只记录一次。问题是当我停止并让会话过期(测试2分钟)并再试一次。它记录新会话,这是我期望的行为,但之后会在每个页面视图上触发Session_Start。我在不同的浏览器上确认了这个

看来,一旦会话过期且浏览器仍然打开,它就无法维持会话。

1 个答案:

答案 0 :(得分:1)

我的解决方法是向会话添加内容:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) 

   If My.User.IsAuthenticated = True Then 
      Log.Create() 
      Session("SessionLogged") = True
   End If 

End Sub