Quelle est la différence entre Session.Abandon()
et Session.Clear()
dans ASP.Net?Quelle est la différence entre Session.Abandon() et Session.Clear() dans ASP.Net?
Répondre
Session.Abandon()
mettra fin à la session en cours. Session_End
sera renvoyé et la prochaine requête déclenchera l'événement Session_Start
.
Session.Clear
va effacer les données de session et la session restera active.
L'ID de session restera le même dans les deux cas, tant que le navigateur n'est pas fermé.
En bref:
Session.Abandon();
annule le Session
en cours.
Session.Clear();
efface toutes les valeurs de l'état Session
.
Session.Abandon()
va détruire/tuer toute la session.
Session.Clear()
supprime/efface les données de session (à savoir les clés et les valeurs de la session en cours), mais la session sera en vie.
Comparer à la méthode Session.Abandon(), Session.Clear() ne crée pas la nouvelle session, il suffit de rendre toutes les variables de la session à NULL.
L'ID de session reste le même dans les deux cas, tant que le navigateur n'est pas fermé.
Quelques choses à noter ici de mon expérience:
Session.Abandon()
n'invalide la session en cours. Les anciennes requêtes s'exécutent correctement si vous les relisez. Mais, après l'avoir appelée, la définition du contenu du dictionnaire de session abandonnée n'a aucun effet permanent. La requête suivante obtient un nouveau dictionnaire de session (même si vous utilisez le même ID de session en rejouant une requête précédente) et aucun de vos changements précédents (après avoir appelé la méthode) sont là. Donc, il semble que Session.Abandon()
arrête totalement la persistance de la session entière, tandis que Session.Clear()
ne supprime que ses données. Et, aussi, si vous avez besoin de sécuriser votre application contre les attaques par relecture, vous devez ajouter une logique qui valide les sessions et ne dépende d'aucune de ces méthodes intégrées. Ceux-ci semblent être destinés uniquement à gérer la persistance des données de session, pas pour sécuriser votre application.
Possible duplicate: http://stackoverflow.com/questions/1470445/what-is-the-difference-between-session-abandon-and-session-clear (Oui, je sais que c'est plus de cinq ans de retard. juste remarqué un message de forum ailleurs qui a posté à ces deux. :)) –