Qual è la differenza tra Session.Abandon () e Session.clear () in ASP.Net?
-
26-09-2019 - |
Domanda
Qual è la differenza tra Session.Abandon()
e Session.Clear()
in ASP.Net?
Soluzione
Session.Abandon()
terminerà la sessione corrente. Session_End
verrà licenziato e la richiesta successiva scatterà l'evento Session_Start
.
Session.Clear
sarà solo cancellare i dati della sessione e la sessione rimarrà vivo.
Session ID rimarrà la stessa in entrambi i casi, a patto che il browser non viene chiuso.
In poche parole:
Session.Abandon();
annulla la Session
corrente.
Session.Clear();
cancella tutti i valori da stato Session
.
Altri suggerimenti
Session.Abandon()
distruggerà / uccidere l'intera sessione.
Session.Clear()
Rimuove / cancella i dati della sessione (ossia le chiavi ei valori della sessione corrente), ma la sessione sarà viva.
Confronto a Session.Abandon () il metodo, Session.clear () non crea la nuova sessione, ma solo fare tutte le variabili nella sessione NULL.
Session ID rimarrà lo stesso in entrambi i casi, a patto che il browser non viene chiuso.
Alcune cose da notare qui dalla mia esperienza:
Session.Abandon()
non invalida la sessione corrente. Vecchi richieste eseguono bene se li si riproducono.
Ma, dopo che si chiami, impostando il contenuto della sessione abbandonata dizionario non hanno alcun effetto permanente. La richiesta successiva ottiene un nuovo dizionario sessione di fresco (anche se si utilizza lo stesso ID di sessione riproducendo una richiesta precedente) e nessuno dei vostri precedenti modifiche ad esso (dopo aver chiamato il metodo) ci sono.
Quindi, sembra che Session.Abandon()
si ferma del tutto la persistenza di tutta la sessione, mentre Session.Clear()
rimuove solo i suoi dati.
E, anche, se è necessario per garantire la sua applicazione da attacchi di replay, si dovrebbe aggiungere un po 'di logica che convalida le sessioni e non dipendono da uno di questi metodi built-in. Coloro che sembrano essere significato per gestire solo la persistenza dei dati di sessione, non per proteggere la vostra applicazione.