Questo è un vecchio post, ma se qualcuno è ancora alla ricerca di risposte, ecco un completo e step-by-step soluzione su come ottenere un logout pulito con un nuovo ID di sessione ogni volta.
Si prega di notare che questo articolo si applica solo ai siti abilitati per cookie (cookieless = false).
Passo (1) Modificare il file web.config & add "regenerateExpiredSessionID" segnala come sotto -
<sessionState mode="InProc" cookieless="false" regenerateExpiredSessionId="true" />
Passo (2) Aggiungere il seguente codice nel tuo caso di logout -
Session.Clear();
Session.Abandon();
Response.Cookies.Add(New HttpCookie("ASP.NET_SessionId", ""));
Response.redirect(to you login page);
Passaggio (3) Aggiungere il seguente codice nell'evento page_load della pagina di accesso -
if(!IsPostBack)
{
Session.Clear();
Session.Abandon();
}
I passaggi 2 e 3 servono uno scopo IMPORTANTE. Questo codice consente di generare un ID sessione nuovo di zecca dopo aver fatto clic sul pulsante "Accedi". Ciò impedisce la gestione deboli della sessione (vulnerabilità della risoluzione di sessione) che verrà probabilmente individuata durante un test di penetrazione di terze parti del sito.
Spero che questo aiuti.
fonte
2018-02-07 03:08:34
Perché si desidera rimuovere l'ID di sessione? Mi aiuterà molto se risponderai alla mia domanda qui: http://stackoverflow.com/questions/37642982/why-not-to-reuse-asp-net-sessionid –