Quelle est la différence entre Session.Abandon () et Session.clear () dans ASP.Net?
-
26-09-2019 - |
Question
Quelle est la différence entre Session.Abandon()
et Session.Clear()
dans ASP.Net?
La solution
Session.Abandon()
mettra fin à la session en cours. Session_End
sera tiré et la demande suivante se déclenche l'événement Session_Start
.
Session.Clear
va simplement effacer les données de session et la session restera en vie.
ID de session reste le même dans les deux cas, tant que le navigateur n'est pas fermé.
En bref:
Session.Abandon();
annule la Session
actuelle.
Session.Clear();
efface toutes les valeurs de l'état de Session
.
Autres conseils
Session.Abandon()
va détruire / tuer toute la session.
Session.Clear()
supprime / efface les données de session (à savoir les touches 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 faire toutes les variables de la session à NULL.
ID de session restera même dans les deux cas, tant que le navigateur n'est pas fermé.
Il y a des choses à noter ici de mon expérience:
Session.Abandon()
ne remet pas en cause la session en cours. demandes anciennes exécutent bien si vous les rejouer.
Mais, après que vous l'appelez, la définition des contenus de la session abandonnée dictionnaire n'a pas d'effet permanent. La requête suivante obtient un nouveau dictionnaire de nouvelle session (même si vous utilisez le même ID de session en rejouant une demande précédente) et aucune de vos modifications antérieures à elle (après avoir appelé la méthode) sont là.
Alors, il semble que Session.Abandon()
arrête totalement la persistance de toute la session, alors que Session.Clear()
supprime uniquement ses données.
Et, aussi, si vous avez besoin pour sécuriser votre application contre les attaques de relecture, vous devez ajouter une certaine logique qui valident des sessions et ne pas dépendre l'une de ces méthodes intégrées. Celles-ci semblent être destiné à gérer que la persistance des données de session, et non pour la sécurisation de votre application.