2010-06-02 3 views
2

J'essaie de créer un journal lorsqu'un utilisateur authentifié crée une nouvelle session, mais pour une raison quelconque, j'ai rencontré un comportement étrange. Pour les tests, je tournerai ma session délai de 2 minutes web.config:Temporisations de session ASP.NET trop tôt

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

Et Global.asax.vb je le code ci-dessous pour vous connecter:

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

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

Tout fonctionne correctement après je me connecte Fermez le navigateur et rouvrez-le. Il se connecte seulement une fois pendant que je visite des pages pendant que je suis dans la session. Le problème est quand j'arrête et laisse la session expirer (2 minutes pour le test) et essaye encore. Il enregistre la nouvelle session, qui est le comportement que je m'attends, mais le Session_Start est déclenché sur chaque page vue par la suite. Je l'ai confirmé sur différents navigateurs.

Il apparaît qu'une fois que la session a expiré et que le navigateur est toujours ouvert, il ne peut pas maintenir la session.

Répondre

1

Mon solution était d'ajouter quelque chose à la session:

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 
Questions connexes