2010-06-02 130 views
2

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

<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

我修复了的东西添加到会话:

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