10 Stimmen

Deaktivieren der Schaltfläche "Zurück" im Browser beim Abmelden des Benutzers in asp.net c#

Unser Problem ist, dass wir die Sitzung beim Abmelden löschen können.

Wenn ein Benutzer jedoch auf die Schaltfläche "Zurück" klickt, kann er/sie durch alle vorherigen Bildschirme gehen.

Aber der Vorteil ist, dass ein einziger Klick auf eine dieser zuvor gesurften Seiten den Benutzer zur Anmeldeseite zurückbringt, das hatten wir getan. Aber unsere Anforderung ist wir sollten nicht zulassen, dass Benutzer durch die zuvor surfen Seite zu gehen.

12voto

RSolberg Punkte 26515

Damit das funktioniert, müssen Sie den Cache ablaufen lassen. Ich bin für den Code-Beispiel für Sie suchen.

EDITAR
Ich habe dies für Sie gefunden, es wurde bereits hier auf SO angesprochen.

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)

Hier...

10voto

Ritesh Shah Punkte 101

Schreiben Sie diesen Code in Master-Seite im Seitenlade-Ereignis

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();

und schreiben Sie diesen Code in Login-Seite im Kopfbereich

<script type="text/javascript">
window.history.forward(-1);
</script>

8voto

Erik Funkenbusch Punkte 91649

Sie können die Zurück-Taste nicht "deaktivieren". Es gibt zahlreiche "Tricks", die ich gesehen habe, die den Verlauf löschen können, aber diese sind unzuverlässig und funktionieren nicht von Browser zu Browser oder sogar von Browserversion zu Browserversion.

Wie andere gesagt haben, ist die richtige Methode, den Cache ungültig zu machen, zusammen mit einer serverseitigen Validierung, dass die Sitzung nicht mehr gültig ist, wenn sie versuchen, Daten erneut zu senden. Auch Response.Redirect funktioniert besser als ein Postback, da dies eher ein Get als ein Post verursacht.

2voto

ahsteele Punkte 25888

Für ASP.NET-Seiten können Sie verwenden Response.CacheControl um zu steuern, wie eine Seite im Cache eines Benutzers gespeichert wird. Andere Web-Entwicklungssprachen verwenden etwas Ähnliches.

1voto

Brandon Punkte 13594

Sie könnten sich an Outlook Web Access orientieren und JavaScript einfach das aktuelle Fenster/Tab schließen lassen.

Sie können auch dafür sorgen, dass Ihre "Abmeldeseite" ein Postback ist. Dadurch wird der Benutzer in den meisten Browsern gezwungen, den Postback zu wiederholen. Zu diesem Zeitpunkt können Sie feststellen, dass der Benutzer nicht mehr angemeldet ist, und ihn wieder auf die Anmeldeseite zurückleiten.

Editar: Jemand anderes erwähnte eine Response.Redirect. Sie könnten Ihren "Logout"-Link tatsächlich auf eine Seite leiten, die eine Umleitung vornimmt und IMMER auf eine zweite "Landing Page" umleitet. Wenn der Benutzer auf "Zurück" klickt, landet er wieder auf der Weiterleitung und ist wieder dort, wo er angefangen hat.

Es gibt keine Möglichkeit, den Browserverlauf zu verhindern, daher ist es wichtig, mehrere Methoden zusammen anzuwenden und nicht darauf zu setzen, dass ein Benutzer "nicht rückwärts geht", um die Sicherheit Ihrer Anwendung zu gewährleisten.

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