Pregunta

Redirijo 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 persistieron cuando el usuario inicia sesión de nuevo.

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 a la autenticación de inicio de sesión.

¿Puede alguien dirigirme a un buen tutorial o artículo sobre cómo iniciar y cerrar sesión en sitios web ASP.NET?

¿Fue útil?

Otros consejos

Utilizo siguiente 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", ""));

Preferiría Session.Abandon()

Session.Clear () no hará que se active End y las solicitudes adicionales del cliente no generarán el evento de Inicio de sesión.

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

Session.Clear () simplemente elimina todos los valores (contenido) del Objeto. La sesión con la misma clave todavía está viva .

Entonces, si usa Session.Abandon () , pierde esa sesión específica y el usuario obtendrá una nueva clave de sesión . Podría usarlo, por ejemplo, cuando el usuario cierra sesión .

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.

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í ..! Link de referencia   Borrar sesión en Cerrar sesión MVC 4

<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>  

La forma de borrar la sesión es un poco diferente para .NET core. No existe la 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í

Session.Clear ();

session.abandon () no eliminará la cookie de sessionID del navegador. Por lo tanto, cualquier solicitud nueva después de esto tomará la misma ID de sesión. Por lo tanto, use Response.Cookies.Add (new HttpCookie (" ASP.NET_SessionId " ;, " ")); después de session.abandon ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top