Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   C# [ASP.NET] Windows Authentication Logout (https://www.delphipraxis.net/121100-%5Basp-net%5D-windows-authentication-logout.html)

Phoenix 22. Sep 2008 12:40


[ASP.NET] Windows Authentication Logout
 
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?

jokerfacehro 22. Sep 2008 13:07

Re: [ASP.NET] Windows Authentication Logout
 
hmm, session wär auch meine erste idee gewesen, vielleicht nimmste einfach 2 seiten, du zeigst erst ne standardseite an, die dann zu deiner 401er seite weiterleitet

Phoenix 22. Sep 2008 13:22

Re: [ASP.NET] Windows Authentication Logout
 
Egal wie viele Seiten ich dazwischen schalte: Ich habe immer auf genau einer Seite das Problem, dass ich einmal einen 401er senden muss und ein anderes mal auf die Startseite der Anwendung weiterleiten muss, und ich nicht zwischen dieses beiden Möglichkeiten unterscheiden kann.

jokerfacehro 22. Sep 2008 14:24

Re: [ASP.NET] Windows Authentication Logout
 
viell. mit get-parametern ?

Phoenix 22. Sep 2008 14:34

Re: [ASP.NET] Windows Authentication Logout
 
Das hilft doch nicht? Ich kann nicht beim 401er senden noch irgendwelche Parameter mitgeben....

Der Request kommt, ich breche ihn mit einem 401er ab, danach poppt der Browser den Login-Dialog auf und schickt exakt den gleichen Request nochmal. Nur dann darf ich den nicht abbrechen... Aber ich kann ja nicht erkennen ob ich schonmal abgebrochen habe oder nicht weil es ja exakt der gleiche Request ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz