Martin Penz: Apache (.htaccess), User ausloggen, wechseln?

Hallo Leute!
Ich habe das Sicherheitsprinzip des Apache-Servers verwendet, um meine Anmeldung zu realisieren.
Wenn ein User aber einmal angemeldet ist, bleibt er so lange angemeldet, bis der Browser neu gestartet wird.
Gibt es eine Möglichkeit, den User auch ohne Neustart des Browsers auszuloggen oder zu wechseln?
d.h.: Kann man eine neuerliche Authentifizierung provozieren?

Vielen Dank für eure Hilfe

Martin

  1. Nein.

    1. Nein.

      Nicht? Na das ist ja interessant. Nur komisch, dass sie es auf diversen Websites trotzdem machen.

      AFAIK muss man einfach fuer dasselbe Realm, in dem man die ganze Zeit arbeitet, eine 401 Response schicken, dann wird der Browser seine gecachte Authentifizierung loeschen. Dies kann z.B. mit einem CGI-Script geschehen, oder indem man in der Webserverconfig eine bestimmte Datei demselben Realm zugehoerig macht, aber den Zugriff trotzdem immer verweigert.

      HTH && So long

      1. Nein.

        Nicht? Na das ist ja interessant. Nur komisch, dass sie es auf diversen Websites trotzdem machen.

        AFAIK muss man einfach fuer dasselbe Realm, in dem man die ganze Zeit arbeitet, eine 401 Response schicken, dann wird der Browser seine gecachte Authentifizierung loeschen. Dies kann z.B. mit einem CGI-Script geschehen, oder indem man in der Webserverconfig eine bestimmte Datei demselben Realm zugehoerig macht, aber den Zugriff trotzdem immer verweigert.

        HTH && So long

        Hallo nochmals!
        So weit so gut, ich führe also zum Ummelden folgendes Skript aus:

        <?
        Header("WWW-Authenticate: Basic realm="Betriebsinformationssystem"");
        Header("HTTP/1.0 401 Unauthorized");
        ?>

        Anschließend fordert der Browser dann auch zum neuerlichen Login auf.
        Diese Anmeldung funktioniert dann aber nicht.
        Habe aber dann auch keinen Zugriff mehr auf meine Sites, d.h. die Abmeldung hat geklappt.
        Was könnte die Ursache dafür sein???

        Danke

        Martin

        1. Hi Martin!

          Anschließend fordert der Browser dann auch zum neuerlichen Login auf.
          Diese Anmeldung funktioniert dann aber nicht.
          Habe aber dann auch keinen Zugriff mehr auf meine Sites, d.h. die Abmeldung hat geklappt.

          Ich beschäftige mich (wie ja weiter unten schon mal gepostet) auch mit dem Problem (allerdings nur am Rande, wegen niedriger Prio und wenig Zeit) und bin genauso weit ;-(

          Was könnte die Ursache dafür sein???

          Ich nehme an, das der Server dann die die .htwasswd nicht findet. Beim "normalen" login hat er die .htaccess gelesen und kennt der Pfad zur .htpasswd. Wenn dem Browser per Script der Status 401 gesendet wird, weis der Server nichts davon. Bekommt er die Antwort mit User/Pwd, dann - ja dann weis ich auch nicht weiter. Mir fällt im Moment auch nichts weiter ein, ich kenne auch die Abläufe in Server nicht so genau. Ich werde mich demnächst mal durch die Apache-Doku quälen, vielleicht finde ich was. Oder hier im Forum hat einer die entscheidende Idee...

        2. Per Mail hatten wir noch drueber gesprochen. Hier eine Kopie fuer's Archiv auf dass es irgendjemandem helfen moege.

          Dieses Skript funktioniert zwar zum Abmelden, d.h.: der Browser löscht
          die $REMOTE_USER-Variable.
          Die neuerliche Anmeldung schlägt allerdings fehl!!!

          Mmh.. Meinst Du bei eben derselben URL, oder bei einer anderen im selben
          Realm? Was ich nicht dazugesagt habe, aber eigentlich logisch ist, dass
          dies kein Ummelden ist, sondern ein Abmelden. Denn dieses Script schickt
          ja *immer* die 401-Antwort zurueck. Du kannst Dich also nicht bei eben
          dieser URL mit anderen Angaben anmelden. Nun gut, man koennte vielleicht
          mitschreiben, wer sich alles in den letzten 2 Minuten ausgeloggt hat,
          und wenn von derselben IP-Adresse wieder ein Anmeldeversuch kommt, die
          401-Response eben doch nicht zu schicken, sondern stattdessen ein
          302-Redirect auf die Adresse, bei der man sich sonst eben anmelden muss.
          Nur die Probleme bei der Identifizierung ueber IP-Adresse kennst Du
          sicherlich (Proxies usw.).

          Vielleicht kannst Du einfach noch nen weiteren Header Content-type:
          text/html ausgeben und dazu das Error document, das ja dann angezeigt
          wird, wenn man bei dem Login-Dialog Abbrechen drueckt. In dieser Seite
          kannst Du dann sagen, erfolgreich ausgeloggt blablabla... um wieder
          einzuloggen dem Link folgen. (Der Link zeigt dann wieder auf die
          Login-Seite.)

          War das Dein Problem, oder hab ich's falsch verstanden? Ich weiss auch
          nicht, ob das obige wirklich klappt, weil ich hab das auch noch nie
          gemacht. Ich hab mir das nur so ueberlegt, musst Du halt mal probieren.

          HTH && So long