Ich habe Probleme beim Löschen von Cookies beim Abmelden des Benutzers.
Ich lerne MVC Asp.Net und ich habe Standard-MVC5-Anwendung erstellt. Ich habe mich registriert und logge mich mit Konten ein, alles in Ordnung. aber wenn ich abmelde, funktioniert es, es leitet mich auf die Homepage weiter, aber es löscht die Cookies nicht.
Ich überprüfe Cookies mit dieser Erweiterung von chrome "Edit This Cookie" .
Zuerst melde ich mich an, kopiere dann den Cookie mit der EditThisCookie-Erweiterung, melde mich ab und lösche die Cookies. Wenn ich jetzt den kopierten Cookie in die EditTshiCookie-Erweiterung einfüge und die Seite aktualisiere, logge ich mich mit demselben Konto ein. Cookies werden nicht gelöscht.
LogOff-Methode
%Vor%Ich habe das versucht von diese Frage
%Vor%Ihre Art, die Cookie-basierte Authentifizierung zu verstehen, ist falsch:)
AuthorizeAttribute
verwendet werden können.
Session.Abandon
wird nicht helfen, weil DefaultAuthenticationTypes.ApplicationCookie
nicht auf Sitzungen basiert.
Wenn dies nicht erwünscht ist. Sie können möglicherweise ein Flag ( IsAuthorized
) zur Sitzung hinzufügen und einchecken. Global.asax Application_PreRequestHandlerExecute
und leite dann zum Login-Formular um. Auf diese Weise erhalten Sie Informationen auf Server- und Clientseite. Aber denken Sie daran, dass, wenn der Server-Sitzungsstatus fehlschlägt (zB Neustart von IIS) alle tatsächlich angemeldeten Benutzer abgemeldet werden.
Weitere Informationen zur Cookie-basierten Authentifizierung link
Beantworten Sie trotzdem sehr spät und versuchen Sie, die Last des Stack-Overflows unbeantwortet zu lassen.
Um jede Anfrage zu identifizieren, weist der Server jedem Benutzer der Webanwendung eine eindeutige Sitzungs-ID zu. Der Server identifiziert den Benutzer anhand der Sitzungs-ID . Serverseitige Sitzungen des Benutzers werden auf Sitzungs-ID zugewiesen. Betrachten Sie es als Modell unten.
%Vor%(Wenn Sie die Cookie-Sitzung verlassen, werden alle zugehörigen .NET-Sitzungen vom Server entfernt)
Wenn Sie also das Sitzungscookie vom Browser löschen, identifiziert der Server die Anfrage nicht und behandelt sie als neue Anfrage und es sieht so aus, als ob der Benutzer abgemeldet wurde.
Da jedoch die Sitzung nicht vom Server verlassen / entfernt wurde, identifiziert der Server beim Versuch, den Wert der kopierten Sitzung erneut im Browser zu verwenden, die Sitzungs-ID der Anfrage und der Benutzer wird erneut angemeldet .
Sie können dies auch mit einem anderen Browser und einer anderen Maschine versuchen.
Dieser hat für mich funktioniert ..
%Vor%und das Javascript mögen
%Vor%Tags und Links asp.net-mvc c# asp.net asp.net-mvc-4 cookies