Question

Quelle est la différence entre Session.Abandon() et Session.Clear() dans ASP.Net?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top