ASP.NET Authentifizierungs-cookie nicht löschen, nachdem Firefox geschlossen ist
Im der Entwicklung einer kleinen web-Anwendung, verwendet einen gemeinsam genutzten computer.
Wenn der Benutzer den browser schließt Fenster, ich will die Sitzung und die Authentifizierung gelöscht werden.
In der Login-Seite verwende ich so etwas wie dieses, um den Benutzer zu authentifizieren:
FormsAuthenticationTicket authTicket =
new FormsAuthenticationTicket(1,txtUser.Text,
DateTime.Now,
DateTime.Now.AddMinutes(5),
false,"");
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
HttpContext.Current.Response.Cookies.Add(faCookie);
string redirectUrl = FormsAuthentication.GetRedirectUrl(txtUser.Text, false);
HttpContext.Current.Response.Redirect(redirectUrl);
Wie Sie sehen können, habe ich die "isPersistent" variable auf false.
Diese scheint zu funktionieren in Chrome (habe nicht getestet auf IE), aber wenn ich die app starte Firefox mit mehreren tabs aktiviert, wenn ich den browser schließen und wieder öffnen, ich bin immer noch authentifiziert, und der cookie ist noch da!
Es ist wirklich seltsam, weil der cookie ist, soll entfernt werden beim schließen... Ist das ein bug von Firefox, wenn mehrere tabs geöffnet? Wie kann ich dieses Problem beheben?
Hilfe ist sehr willkommen!
Vielen Dank im Voraus
InformationsquelleAutor Tony Santos | 2009-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie der browser geschlossen wird, oder nur der eine tab? Sie schließen müssen, dass der gesamte browser. Wenn Sie mehrere top-level-browser-Fenster öffnen, die alle geschlossen werden müssen. Auch alle anderen Fenster, sind Teil des FireFox-Prozesses müssen ebenfalls geschlossen werden: Downloads, Live-HTTP-Header, Quelltext der Seite Ansehen, etc.
InformationsquelleAutor GBegen
Anstatt sich auf Mozilla oder anderen Browsern,ich würde Ihnen empfehlen, diesen code verwenden, um die cookies löschen :
Weitere Informationen zu diesem Thema : Gewusst wie: Löschen von Cookies
Edit :
Wenn Sie möchten, dass cookies zu löschen, während die Seite entladen, können Sie Javascript verwenden, um zu erreichen, dass :
Ich denke, in deiner situation ist Javascript die beste Lösung.
S. : Laut deiner Frage, ich habe mich verändert meine Antwort. Hoffe, es hilft.
Wäre das nicht auch löschen der session-cookie wird jedes mal, wenn Sie auf einen link klicken, wechseln Sie zu einer anderen Seite innerhalb des Portals auch? Im wesentlichen zwingt Sie, sich erneut anmelden und wieder für jede Seite? Tom will nur diese passieren, wenn Sie den browser schließen, was ich nicht glaube, erkannt werden können.
InformationsquelleAutor Tarik
Nicht verwenden, cookies, Sitzungs-zum speichern der Benutzer authentifiziert, und ASP.NET verwalten der session-cookie für Sie, es funktioniert mit FireFox und ist sicherer.
Aber wenn Sie möchten weiterhin mit diesem Authentifizierungs-cookie platzieren Sie den code, um es zu entfernen in der Globalen.asax Session_Start-Ereignis.
Dies ist tatsächlich nicht funktioniert, weil die ASP.NET session-Ende nicht in Mozilla, wenn Sie nicht schließen Sie die Registerkarte speziell. Wenn Sie das Fenster schließen ohne schließen Sie die Registerkarte, die Sitzung ist noch aktiviert.
InformationsquelleAutor Wagner
Danke für die Tipps Jungs, aber ich bin sicher, im der browser geschlossen wird, ohne weitere Firefox-Fenster geöffnet.
Durch das Lesen diese, es scheint, dass dies ist der Standard-browser-Verhalten, choosen, indem Sie den Firefox 3 Designer...
Scheint es speichert auf der Festplatte die cookies suposed gespeichert werden, auf RAM, zum wiederherstellen der tabs beim öffnen des Browsers wieder. Also, wenn Sie wollen-Sitzung gelöscht werden, müssen Sie alle Registerkarten schließen und dann den browser...
Ich denke, das kann dazu führen, dass einige Fehler bezüglich der Authentifizierung-Sicherheit, zum Beispiel, jemand mit der Anwendung, den job zu beenden und Blätter, durch schließen des browser und nicht die Registerkarten. Da der computer geteilt werden, direkt nachdem ein anderer Benutzer den browser öffnet, und er wird sehen, alle tabs der vorherigen session wieder...
InformationsquelleAutor Tony Santos
Das problem ergibt sich aus der Tatsache, dass, wenn Sie einen Ablauf, erhalten Sie einen permanenten cookie, der folgende code funktioniert für mich, wo ich möchten, dass der Benutzer die Wahl zwischen einer permanenten oder browser-session-cookie a la "remember me" das Kontrollkästchen, wenn die Anmeldung:
InformationsquelleAutor jenson-button-event
Nur ein wild guess: stellen Sie sicher, Sie haben nicht die FireFox-Download-Fenster noch offen...
InformationsquelleAutor Wim Hollebrandse
Gut fand ich diese Lösung, die helfen könnten einige ein anderes:
Quelle: http://forums.asp.net/p/1565112/3895452.aspx
InformationsquelleAutor Aishwarya Shiva