Frage

Was ist der Unterschied zwischen Session.Abandon() und Session.Clear() in ASP.Net?

War es hilfreich?

Lösung

Session.Abandon() wird die aktuelle Sitzung beenden. Session_End wird gefeuert und die nächste Anforderung wird das Session_Start Ereignis ausgelöst.

Session.Clear wird nur die Session-Daten löschen und die die Sitzung am Leben bleiben.

Session-ID wird das gleiche in beiden Fällen bleiben, solange der Browser nicht geschlossen ist.

Auf den Punkt gebracht:

Session.Abandon(); bricht die aktuelle Session.

Session.Clear(); löscht alle Werte von Session Zustand.

Andere Tipps

Session.Abandon() 

wird die gesamte Sitzung zerstören / töten.

Session.Clear()

Entfernt / löscht die Sitzungsdaten (das heißt die Schlüssel und Werte aus der aktuellen Sitzung), aber die Sitzung am Leben sein.

Vergleich zu Session.Abandon () -Methode, Session.Clear () erstellt nicht die neuen Sitzung, es ist einfach, alle Variablen in der Sitzung auf NULL machen.

Session-ID wird in beiden Fällen gleich bleiben, solange der Browser nicht geschlossen ist.

Einige Dinge hier aus meiner Erfahrung zu beachten:

Session.Abandon() nicht die aktuelle Sitzung ungültig machen. Alte Anfragen ausführen Ordnung, wenn man sie wiederholen.

Aber, nachdem Sie es nennen, Wörterbuch den Inhalt der verlassenen Sitzung Einstellung haben keine dauerhafte Wirkung. Die nächste Anfrage bekommt einen frischen neuen Session-Wörterbuch (auch wenn Sie die gleiche Sitzungs-ID verwenden, indem Sie eine vorherige Anforderung der Wiedergabe) und keine Ihre vorherigen Änderungen an ihn (nach der Methode aufgerufen hat) gibt es.

So scheint es, dass Session.Abandon() völlig die Persistenz der gesamten Sitzung beendet, während Session.Clear() nur seine Daten entfernt.

Und auch, wenn Sie Ihre Anwendung von Replay-Attacken sichern müssen, sollten Sie eine gewisse Logik hinzufügen, dass validates Sitzungen und nicht hängen von einem dieser integrierten Methoden. Das scheint nur für die Verwaltung der Persistenz der Sitzungsdaten gemeint ist, nicht für Ihre Anwendung zu sichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top