2 Stimmen

Sitzung in asp.net beim Schließen des Browsers abbrechen..Sitzungscookie töten

Ich habe also eine Website, auf der ich Sitzungsstart- und -end-Ereignisse verwende, um offene Instanzen unserer Webanwendung zu verfolgen und einzuschränken, sogar auf demselben Computer. Beim Entladen der Seite rufe ich eine sitzungsaktivierte Seitenmethode auf, die dann session.abandon aufruft.

Dies löst Session-End-Ereignis und löscht die Session-Variable, aber leider nicht töten die Session-Cookie!! als Ergebnis, wenn andere Browser-Instanzen geöffnet sind, gibt es Probleme, weil ihre Session-Status gerade verschwunden ... und viel schlimmer als das, wenn ich die Website wieder mit dem Zombie-Sitzung noch nicht abgelaufen ist, bekomme ich mehrere Session-Start-und Session-End-Ereignisse auf alle nachfolgenden Postbacks. Dies geschieht in allen Browsern. Wie kann ich also die Sitzung wirklich beenden (das Cookie zum Auslaufen zwingen)?

1voto

Peter Mourfield Punkte 1889

Ich habe dies immer benutzt, um sicherzustellen, dass die Sitzung des Benutzers beendet wurde:

HttpContext.Current.Session.Abandon();

0voto

CSharpAtl Punkte 7190

Wenn Sie FormsAuthentication verwenden, können Sie verwenden:

FormsAuthentication.SignOut();

0voto

Venu Bandi Punkte 1

FormsAuthentication.SignOut(); lässt das Authentifizierungs-Cookie ablaufen, entfernt das Sitzungs-Cookie aber erst nach der in web.config für sessionstate angegebenen Zeitspanne. Wenn Sie die Sitzung sofort löschen möchten, müssen Sie das Sitzungscookie wie unten beschrieben manuell ablaufen lassen.

var myCookie = new HttpCookie("ASP.NET_SessionId") { Expires = DateTime.Now.AddDays(-1D) }; Response.Cookies.Add(myCookie);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X