2010-02-05 6 views
0

Je suis en train d'enregistrer les heures de début de session à partir du moment où les gens se connectent à mon application web .NET 2.0, mais je voudrais également enregistrer l'ID de session. Quelqu'un peut-il me donner un exemple de code sur la façon d'accomplir cela (comment accéder à l'ID de session à partir de Global.ASAX).ASP.NET - Récupère l'identificateur SessionID depuis le Global.ASAX

Si vous avez besoin d'informations supplémentaires, faites-le moi savoir.

Répondre

4

HttpContext.Current.Session.SessionID

Modifier pour afficher essai null:

if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) { 
    id = HttpContext.Current.Session.SessionID 
} 
+1

Je vous conseille de vérifier cela pour null aussi bien pour être sûr. –

+0

"Je vous conseille de vérifier cela pour null aussi bien pour être sûr" Quelle est la meilleure façon de le faire? – Albert

+0

J'ai ajouté une suggestion à ma réponse – Ray

1

Vous pouvez obtenir à elle tout simplement avec HttpContext.Current.Session.SessionId comme vous le savez probablement déjà. Vous devez être sur ou après Application_AcquireRequestState avant le chargement de l'état de la session, et l'état de la session est également chargé uniquement lorsque la ressource demandée implémente IRequiresSessionState. Vous pouvez voir une liste de tous les événements global.asax ici: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html et en savoir plus sur IRequiresSessionState ici: http://msdn.microsoft.com/en-us/library/system.web.sessionstate.irequiressessionstate.aspx

0

Ecrire à la session, le datetime et sessionid au moment de la première requête suivante ASP.NET de l'identification de l'utilisateur session.

protected void Application_PreRequestHandlerExecute(object sender, EventArgs eventArgs) { 
    var session = HttpContext.Current.Session; 
    if (session != null) { 
     if (session["foo"] == null) { 
      session["foo"] = DateTime.Now.Ticks + "|" + session.SessionID; 
     } 
    } 
} 
Questions connexes