Domanda

Qual è la differenza tra Session.Abandon() e Session.Clear() in ASP.Net?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top