una limpiar eliminar asp.net .net asp.net-session

asp.net - limpiar - Cómo borrar la sesión al desconectarse



eliminar cookies c# (8)

Redirigir al usuario a la página de inicio de sesión cuando el usuario hace clic en cerrar sesión, sin embargo, no creo que borre ninguna aplicación o sesión porque todos los datos persisten cuando el usuario vuelve a iniciar sesión.

Actualmente, la página de inicio de sesión tiene un control de inicio de sesión y el código detrás de la página solo está conectado al inicio de sesión Autenticar.

¿Puede alguien dirigirme a un buen tutorial o artículo sobre cómo manejar el inicio y cierre de sesión de los sitios web de ASP.NET?


Session.Clear ();



<script runat="server"> protected void Page_Load(object sender, System.EventArgs e) { Session["FavoriteSoftware"] = "Adobe ColdFusion"; Label1.Text = "Session read...<br />"; Label1.Text += "Favorite Software : " + Session["FavoriteSoftware"]; Label1.Text += "<br />SessionID : " + Session.SessionID; Label1.Text += "<br> Now clear the current session data."; Session.Clear(); Label1.Text += "<br /><br />SessionID : " + Session.SessionID; Label1.Text += "<br />Favorite Software[after clear]: " + Session["FavoriteSoftware"]; } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>asp.net session Clear example: how to clear the current session data (remove all the session items)</title> </head> <body> <form id="form1" runat="server"> <div> <h2 style="color:Teal">asp.net session example: Session Clear</h2> <asp:Label ID="Label1" runat="server" Font-Size="Large" ForeColor="DarkMagenta" > </asp:Label> </div> </form> </body> </html>


Yo preferiría Session.Abandon()

Session.Clear() no provocará que End to fire y otras solicitudes del cliente no generarán el evento Session Start.


Session.Abandon() destruye la sesión y se desencadena el evento Session_OnEnd .

Session.Clear() simplemente elimina todos los valores (contenido) del objeto. La session with the same key todavía está alive .

Por lo tanto, si usa Session.Abandon() , perderá esa sesión específica y el usuario obtendrá una new session key . Puede usarlo, por ejemplo, cuando el usuario logs out la logs out .

Use Session.Clear() , si desea que el usuario permanezca en la misma sesión (si no desea que vuelva a iniciar sesión, por ejemplo) y restablezca todos los datos específicos de su sesión.


Utilizo aspnet_sessionID para borrar la sesión y borrar aspnet_sessionID :

HttpContext.Current.Session.Clear(); HttpContext.Current.Session.Abandon(); HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));


Vaya al archivo Global.asax.cs en su proyecto y agregue el siguiente código.

protected void Application_BeginRequest() { Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetExpires(DateTime.Now.AddHours(-1)); Response.Cache.SetNoStore(); }

¡Funcionó para mí ...! Enlace de referencia Borrar sesión en Logout MVC 4


La forma de borrar la sesión es un poco diferente para .NET core. No hay función Abandon() .

ASP.NET Core 1.0 o posterior

//Removes all entries from the current session, if any. The session cookie is not removed. HttpContext.Session.Clear()

Ver api Referencia aquí

.NET Framework 4.5 o posterior

//Removes all keys and values from the session-state collection. HttpContext.Current.Session.Clear(); //Cancels the current session. HttpContext.Current.Session.Abandon();

Ver api Referencia aquí