Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#1

[ASP.NET] Windows Authentication Logout

  Alt 22. Sep 2008, 12:40
Hi,

ich hab ein eher algorithmisches Problem hier:

Ich will einen Logout bei einer ASP.NET Anwendung realisieren, die Windows Authentication benutzt. Da hier die Authentifizierung auf http-Ebene passiert (also sehr früh), kann ich hier auch nur auf dieser Ebene den Logout ausführen. Das ganze passiert, in dem an den CLient eine 401.1 Response geschickt wird. Bekommt der Webbrowser in einer via http authentifizierten Session einen 401er zurück (Not Authorized), dann zeigt er wieder den Promt für die Benutzereingabe an.

Das ist soweit kein Problem, technisch funktioniert das auch das heisst, ich kann den Benutzer damit aus- und einen anderen wieder einloggen. Mir gefällt das Handling nur nicht, da wenn ich die 401er Response sende, der Browser im Hintergrund weiterhin die alte Seite anzeigt. Und damit möglicherweise Daten, die der User mit dem Ausloggen eigentlich schützen wollte.

Wenn ich auf eine andere Seite umleite und diese Seite schon beim ersten Aufruf den 401er sendet habe ich das gleiche Problem. Ich muss die neue Seite also erst einmal anzeigen und dann in einem Postback den 401er senden.

Nur habe ich dann das Problem, dass ich hier nicht unterscheiden kann, ob der Postback direkt der erste Postback ist ( = ich muss den 401er schicken und den Seitenaufbau damit abbrechen), oder ob es dann nach dem 401er der tatsächliche Seitenaufbau ist ( = ich muss auf die Hauptseite umleiten). Wie gesagt: Die Windows Authentication läuft ja schon etwas früher.

Jetzt könnte ich mir den Status natürlich in einer Session-Variable merken, finde das aber etwas unsauber, da die Session ja bei einem Logout eigentlich auch weggeschmissen werden müsste und vor dem Login keine neue da sein dürfte.

Hat da wer schonmal sowas gemacht und eine Idee?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat