Se stai usando i provider di appartenenze standard e autenticazione basata su form:
FormsAuthentication.SignOut();
HttpContext.Current.Session.Abandon();
di solito funziona a meraviglia.
Tenere presente che se l'utente preme di nuovo nel proprio browser, probabilmente vedrà la versione memorizzata nella cache.
Modifica per rispondere alle osservazioni
ho avuto l'impressione che FormsAuthentication.Signout:
Rimuove il ticket forme-di autenticazione dal browser.
E che, come il ticket di autenticazione è completamente separata dal, e senza rapporto con il token di sessione, se si vuole cancellare completamente tutte le conoscenze degli utenti dal server a quel punto, chiamando Session.Abandon è una buona cosa da fare Sono consapevole che una nuova sessione verrà creata per loro nella richiesta della pagina successiva - Sarei interessato a vedere la documentazione in contrario.
fonte
2010-03-03 08:09:11
Sessione.Abandon non deve essere utilizzato durante la disconnessione di un utente. FormsAuthentication.SignOut() dovrebbe eseguire tutto il lavoro di SignOut. –
Ho scoperto che se non si include la chiamata Session.Abandon(), il provider di ruoli estrae i ruoli per l'utente che ha eseguito l'accesso la volta successiva che accede qualcuno. Ciò non va bene. –
@Shea Daniels: "La prossima volta che qualcuno effettua l'accesso" dalla stessa macchina? Curioso, perché il fornitore di ruoli dovrebbe funzionare con l'utente attualmente connesso e il token di autenticazione: come stai chiamando il tuo fornitore di ruolo? –