it-swarm.com.de

So löschen Sie die Sitzung beim Abmelden

Ich leite den Benutzer auf die Anmeldeseite um, wenn der Benutzer sich abmeldet. Ich glaube jedoch nicht, dass dadurch Anwendungen oder Sitzungen gelöscht werden, da alle Daten erhalten bleiben, wenn sich der Benutzer wieder anmeldet.

Derzeit hat die Anmeldeseite eine Anmeldungssteuerung und der Code, der sich auf der Seite befindet, ist nur mit der Anmeldeauthentifizierung verbunden.

Kann mich jemand zu einem guten Tutorial oder einem Artikel zum Umgang mit ASP.NET-Websites an- und abmelden?

55
Jack
66
Ryan Cook

Ich verwende folgendes, um die Sitzung zu löschen und aspnet_sessionID zu löschen:

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

Ich würde Session.Abandon() vorziehen

Session.Clear() führt nicht dazu, dass End ausgelöst wird, und weitere Anforderungen vom Client lösen das Sitzungsstartereignis nicht aus.

18
AnthonyWJones

Session.Abandon() zerstört die Sitzung und das Session_OnEnd-Ereignis wird ausgelöst.

Session.Clear() entfernt einfach alle Werte (Inhalt) aus dem Objekt. Der session with the same key ist noch alive.

Wenn Sie also Session.Abandon() verwenden, verlieren Sie diese bestimmte Sitzung und der Benutzer erhält einen new session key. Sie können es beispielsweise verwenden, wenn der Benutzer logs out.

Verwenden Sie Session.Clear(), wenn Sie möchten, dass der Benutzer in derselben Sitzung verbleibt (wenn Sie beispielsweise nicht möchten, dass er erneut angemeldet wird) und alle seine sitzungsspezifischen Daten zurücksetzen.

11
BrainCoder

Gehen Sie in Ihrem Projekt zur Datei Global.asax.cs und fügen Sie den folgenden Code hinzu.

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

Es hat für mich funktioniert ..! Referenzlink Sitzung in Logout MVC 4 löschen

2
Darshan
<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>  
1
Lucky

session.abandon () entfernt das sessionID-Cookie nicht aus dem Browser. Daher werden alle neuen Anfragen nach dieser Sitzung dieselbe Sitzungs-ID erhalten. Verwenden Sie daher Response.Cookies.Add (new HttpCookie ("ASP.NET_SessionId", "")); nach session.abandon ().

0
Amey P Naik

Die Art und Weise, wie die Sitzung gelöscht wird, ist für .NET Core etwas anders. Es gibt keine Abandon()-Funktion.

ASP.NET Core 1.0 oder höher

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

Siehe api-Referenz hier

.NET Framework 4.5 oder höher 

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

//Cancels the current session.
HttpContext.Current.Session.Abandon();

Siehe api-Referenz hier

0
Padhraic

Session.Clear ();

0
BobbyShaftoe