2010-06-02 134 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