phpbar.de logo

Mailinglisten-Archive

[php] Re: Authentisierung reset?

[php] Re: Authentisierung reset?

Martin Ramsch m.ramsch_(at)_computer.org
Mon, 15 Mar 1999 17:48:46 +0100


--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Ralf Geschke schrieb am Montag, den 15. März 1999:
> Wenn jedoch einmal ein Login erfolgreich war, ist kein "Ausloggen" ohne
> Neustart des Browsers moeglich (zumindest nicht hier unter Netscape). 

Nein nein, gerade anders herum!  Die einzige Möglichkeit, die ich
kenne, funktioniert nach meinen Tests _nur_ mit Netscape. :-)

> Um den Dialog erneut anzuzeigen, muesste man vermutlich ein anderes Realm
> einsetzen, diesem z.B. eine Art Session-ID mitgeben. 

Der Trick ist, daß der Web-Server ein "HTTP/1.0 401 Unauthorized"
schicken muß, _obwohl_ der Zugriff mit korrektem PHP_AUTH_USER und
PHP_AUTH_PW geschah.
Als Folge erscheint dann das bekannte Autentifizierungs-Fenster von
Netscape.
Und hier muß man nun _abbrechen_, damit Netscape die bisherigen Daten
vergißt.  (Wählte man "Okay", so würde - mit nun evtl. neuen Daten -
nur wieder die ablehnende Seite aufgerufen ...)

Anbei findet Ihr eine leicht modifierte Version der Datei, die ich
Tobias Ratschiller für sein phpMyAdmin geschickt habe (mal sehen, ob
er's in die nächste Version übernehmen will?).

Aufruf mit "logoff.php3" liefert erstmal nur eine Erklärung.
Aufruf mit "logoff.php3?LOGOFF=1" stößt die eigentliche Abmeldung an.

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

  Die stärkste Kraft reicht nicht an die Energie heran, mit der manch
  einer seine Schwäche verteidigt. -- Karl Kraus

--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="logoff.php3"

<?php
/* $Id: logoff.php3,v 1.3 1999/02/24 16:25:22 m.ramsch Exp $ */

if ($LOGOFF != 1):

  require("header.inc.php3");
?>

<H1>Anderen Benutzernamen wählen</H1>

<DIV ALIGN="left">

Um den Benutzernamen wechseln zu können, muß man den Web-Browser dazu
veranlassen, die bisher zur Authorisierung verwendeten Daten zu verwerfen.

<P>Da die mir bekannten WWW-Browser diese Funktion leider nicht
direkt bieten, muß ein Trick herhalten:  wenn vom Webserver der
Zugriff auf eine Seite plötzlich verweigert wird und man dann
<EM>abbricht</EM>, statt sich neu zu authorisieren, vergessen
manche Browser die bisherigen Authorisierungsdaten, so daß man
sich <EM>danach</EM> wieder neu anmelden kann.<BR>
Bisher ist dieses Verfahren erfolgreich mit Netscape getestet ...

<P>Bitte wählen sie nun den nachfolgenden Verweis aus - bei der dann
angezeigten Fehlermeldung, daß die Authorisierung fehlschlug, bitte
<STRONG>abbrechen</STRONG>!

<DL><DT>
<DD><STRONG><A HREF="logoff.php3?LOGOFF=1">Abmelden!</A></STRONG>
</DL>

</DIV>
<?php

else:  // LOGOFF==1

  Header("WWW-authenticate: basic realm=\".  BITTE NICHTS EINGEBEN, SONDERN ABBRECHEN!  \"");
  Header("HTTP/1.0 401 Unauthorized");

  require("header.inc.php3");
?>
<H1>Abmeldung</H1>

<DIV ALIGN="left">

  Der Browser sollte jetzt die bisherigen Einstellungen der
  Authorisierung vergessen haben, so daß Sie sich
  <DL><DT>
  <DD><A HREF="index.html">Neu anmelden!</A>
  </DL>
  können.

</DIV>
<?php

endif;

require ("footer.inc.php3");
?>

--pWyiEgJYm5f9v55/--


php::bar PHP Wiki   -   Listenarchive