Jaka jest różnica między Session.Abandon()
i Session.Clear()
w ASP.Net?Jaka jest różnica między Session.Abandon() i Session.Clear() w ASP.Net?
Odpowiedz
Session.Abandon()
zakończy bieżącą sesję. Session_End
zostanie wyrzucony, a następne żądanie wywoła zdarzenie Session_Start
.
Session.Clear
po prostu wyczyści dane sesji, a sesja pozostanie przy życiu.
Identyfikator sesji pozostanie taki sam w obu przypadkach, o ile przeglądarka nie zostanie zamknięta.
W skrócie:
Session.Abandon();
anuluje bieżący Session
.
Session.Clear();
kasuje wszystkie wartości ze stanu Session
.
Session.Abandon()
zniszczy/zabije całą sesję.
Session.Clear()
usuwa/usuwa dane sesji (tj. Klucze i wartości z bieżącej sesji), ale sesja będzie żyła.
Porównaj metodę Session.Abandon(), Session.Clear() nie tworzy nowej sesji, po prostu powoduje, że wszystkie zmienne w sesji mają wartość NULL.
Identyfikator sesji pozostanie taki sam w obu przypadkach, o ile przeglądarka nie zostanie zamknięta.
Niektóre rzeczy zauważyć tutaj z mojego doświadczenia:
Session.Abandon()
nie unieważnia bieżącej sesji. Stare żądania są wykonywane poprawnie, jeśli je odtwarzasz.
Ale po wywołaniu tego, ustawienie zawartości opuszczonego słownika sesji nie ma stałego efektu. Kolejne żądanie otrzyma nowy słownik sesji (nawet jeśli użyjesz tego samego identyfikatora sesji przez powtórzenie poprzedniego żądania) i żadna z twoich poprzednich zmian (po wywołaniu metody) nie istnieje.
Wydaje się więc, że Session.Abandon()
całkowicie zatrzymuje trwałość całej sesji, podczas gdy Session.Clear()
usuwa tylko swoje dane.
A także, jeśli potrzebujesz zabezpieczyć swoją aplikację przed atakami powtórek, powinieneś dodać logikę, która sprawdza poprawność sesji i nie zależy od żadnej z tych wbudowanych metod. Te wydają się być przeznaczone tylko do zarządzania trwałością danych sesji, a nie do zabezpieczania aplikacji.
- 1. W ASP.Net, jaka jest różnica między <% = i <% #
- 2. Jaka jest różnica między <% # i <% = w ASP.NET MVC?
- 3. Jaka jest różnica między HttpContext.Current.User i Thread.CurrentPrincipal w asp.net?
- 4. Jaka jest różnica między Widok i PartialView w ASP.NET MVC?
- 5. Jaka jest różnica między? : i ||
- 6. Jaka jest różnica między $ i $$?
- 7. Jaka jest różnica między Databinder.Eval i Container.DataItem?
- 8. Jaka jest różnica między Json i Jsonp?
- 9. Jaka jest różnica między = i: = w mysql?
- 10. Jaka jest różnica między! = I =! w Javie?
- 11. Jaka jest różnica między 'i "w PHP
- 12. Jaka jest różnica między! i !! w yaml?
- 13. jaka jest różnica między @ i @@ w module?
- 14. Jaka jest różnica między * i. * W Matlab?
- 15. Jaka jest różnica między | i || w MATLAB?
- 16. Jaka jest różnica między * i * | * w CSS?
- 17. Jaka jest różnica między ASP.NET Identity i IdentityServer?
- 18. Jaka jest różnica między Application_AuthenticateRequest i FormsAuthentication_OnAuthenticate
- 19. Różnica między aspem i asp.net
- 20. Jaka jest główna różnica między GridView/DetailsView/FormView w ASP.net
- 21. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 22. Jaka jest różnica między asersem i static_assert?
- 23. Jaka jest różnica między PropertyChangeListener i VetoableChangeListener?
- 24. Jaka jest różnica między Ja i Ja?
- 25. Jaka jest różnica między ATL i WTL?
- 26. Jaka jest różnica między FontMetrics.stringWidth() i FontMetrics.getStringBounds()?
- 27. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 28. Jaka jest różnica między CellClick i CellMouseClick?
- 29. Jaka jest różnica między ObjectResult i JsonResult
- 30. Jaka jest różnica między ssize_t i ptrdiff_t?
Możliwy duplikat: http://stackoverflow.com/questions/1470445/what-is-the-difference-between-session-abandon-and-session-clear (Tak, wiem, że to spóźnia się ponad pięć lat. właśnie zauważyłem wpis na forum w innym miejscu, który opublikował oba. :)) –