Wie logge ich mich ein Benutzer aus, wenn Sie schließen Sie Ihren browser oder tab in ASP.NET MVC?
Brauche ich zum Abmelden eines Benutzers, wenn der Benutzer schließt den tab oder browser, wie Mach ich das in ASP.NET MVC?
- Tun Sie etwas haben, derzeit zu versuchen, dies zu tun? Jeder code / Ideen, die Sie haben derzeit würde helfen, eine bessere Antwort.
- Ich habe versucht heraus zu löschen, die auf Session_Start aber es war schlecht
- Siehe Automatisch Abmelden von Forms-Authentifizierung in ASP.NET wenn der browser geschlossen ist, Benutzer Abmelden, wenn die browser-Registerkarte geschlossen wird, ASP.NET MVC, Abmelden vom browser, wenn der Browser geschlossen in asp .net?
- Das sind große Fragen-Sie alle lösen das problem auf unterschiedliche Weise.
- das ist, warum wir brauchen mehr Referenz Fragen und Antworten sorgfältig erklärt die vor - und Nachteile des jeweiligen Ansatzes, und weniger Menschen beantworten schlecht recherchierte Fragen, weil Sie eben wissen, wie Sie zu lösen einem bestimmten Teil der Frage.
- Die einzige Möglichkeit, um eine Referenz für die Frage " ist um eine bestehende Frage zu verwenden als eine.
- alle drei Fragen, die ich verlinkte die gleiche Frage stellen, wie dieses, das zweite (ab 2009) erwähnt in Ihrer Lösung in der Frage explizit erwähnt", wenn Sie schließen Sie die Registerkarte".
- Die zweite listet die
Cookieless
Ansatz-das ist nicht ein guter Ansatz, aus Gründen, die ich deutlich machen, in meiner Antwort. Keine der Antworten, die Sie link zu schweigen von meinem Ansatz. - Ich bin auch mit diesem problem. Speziell mit Google CHROME. Die unter-Lösungen haben nicht funktioniert.
- Haben Sie versucht, die JavaScript-Ansatz? Sollte es beheben das chrome-Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein paar Dinge, die Sie tun können, um sicherzustellen, dass der Benutzer wird abgemeldet, wenn der browser geschlossen wird, aber es hängt davon ab, wie man die Einstellung der FormsAuthentication cookie:
Cookieless=True
.FormsAuthentication.SetAuthCookie
zu setzen Persistenz zufalse
window.unload
.Cookieless=True
Ansatz:Dieser fügt dem cookie-Wert der querystring-in jedem Antrag. Das problem mit diesem Ansatz ist es nicht sehr sicher und es verwirrt mit SEO. Wenn ein Benutzer sendet jemand die URL, die Sie verwenden, kann diese person anmelden, als der ursprüngliche Benutzer (wahrscheinlich nicht, was Sie wollen). So weit wie 'messing mit SEO", es bewirkt, dass die gleiche Seite anders Aussehen, um ein googlebot basierend auf dem, was die URL übergeben wird. Jeder QueryString ändern, macht es eine neue URL, und wenn jemand nutzt diese für die Buchung ein link; es wird verdünnen Sie die Suchergebnisse für einen gegebenen tatsächlichen URL.
FormsAuthenticationTicket
AnsatzWenn Sie eine Authentifizierungs-cookie für den Benutzer, legen Sie Persistent zu
False
.Wenn Sie dies tun, in der
FormsAuthentication.SetAuthCookie
ist dies Standard. Wenn Sie dieFormsAuthenticationTicket
- Klasse, müssen Sie die cookie Ablaufdatum.FormsAuthentication.SetAuthCookie()
AnsatzStandardmäßig, wenn Sie nicht setzen
persistent
, wird der Authentifizierungs-cookie verfällt am Ende der session (wenn der Benutzer den browser schließt).JavaScript:
Gibt es keine narrensichere Methoden, alles, was Sie tun können, ist legen Sie die cookie-Verfallsdatum, um sich jetzt vor und hoffen, dass der browser des Benutzers arbeitet. Wenn Sie wirklich, wirklich, wirklich, wollen Sie, der cookie Weg ist, kann man immer versuchen, eine JavaScript-Ansatz, aber das wird nicht funktionieren, wenn der Benutzer JavaScript deaktiviert.
Andere Vorsichtsmaßnahmen
Spielt es auch eine Rolle, welchen browser Sie verwenden. Chrome hat die Fähigkeit, im hintergrund laufen, und hält, dass Session-Cookies herum, bis Ihr timeout ist der hit-Sie werden nicht gelöscht wenn der browser geschlossen wird (ich fand dies heraus die harte Tour).