kein Fenster zur HTTP Authentifizierung
Christof Moser
- browser
Hallo zusammen
Wir haben eine Seite mit PHP Programmiert, die so aussieht (gekürzt):
class defaultFactorySettings
{
function authGetLogin()
{
if(!$this -> auth)
{
header("WWW-Authenticate: Basic realm=FACTORY");
header("HTTP/1.0 401 Unauthorized");
$this -> authShowLoginFailed();
exit;
}
}
}
Die vollständige Klasse wird dann bei allen Seiten included, die eine Authentifizierung benötigen. Danach wird eine Funktion aus der Klasse aufgerufen die Benutzername und PW prüft, falls nicht vorhanden oder falsch wird die Funktion authGetLogin() von oben ausgeführt.
unsere Plattform hat ungefähr 3500 Nutzer, die sich auf den Seiten mit dieser HTTP Authentifizierung problemlos einloggen können.
In der letzten Woche haben wir jedoch gleich 2 Supportanfragen von Nutzern erhalten, bei denen sich kein Fenster zur Eingabe von Benutzername/Passwort öffnet sondern direkt die Fehlerseite kommt. Und das jedesmal wenn sie sich einloggen möchten, also auch wenn der Browser ganz neu gestartet wird.
Bei beiden Nutzern hat es mit dem Browser IE 5.0 oder höher nicht geklappt...
Weiss da jemand, woran es liegen kann, dass sich kein Fenster zur Authentifizierung öffnet? Hat das etwas mit den lokalen Browsereinstellungen zu tun? Unterbindung von Cookies oder sonstwas in die Richtung?
Hello,
... man kann auch die Authentifizierung im Browser abschalten,
nicht nur die Cookies.
Liebe Grüße aus http://www.braunschweig.de
Tom
... man kann auch die Authentifizierung im Browser abschalten,
nicht nur die Cookies.
hm, und wo genau kann man die abschalten? Muss wohl irgendwo unter "Extras/Internetoptionen" sein? Konnte es leider nicht finden...
Hello,
... man kann auch die Authentifizierung im Browser abschalten,
nicht nur die Cookies.hm, und wo genau kann man die abschalten? Muss wohl irgendwo unter "Extras/Internetoptionen" sein? Konnte es leider nicht finden...
Genau!
unter Extra/Internetoptionen/Sicherheit/Internet/Stufe anpassen/Benutzerauthentifizierung/Anmeldung
Liebe Grüße aus http://www.braunschweig.de
Tom
hi,
header("WWW-Authenticate: Basic realm=FACTORY");
header("HTTP/1.0 401 Unauthorized");
hilft der hinweis unter http://www.php.net/manual/de/features.http-auth.php evtl. weiter?
"Hinweis: Achten Sie bei den Header-Zeilen für maximale Kompatibilität auf die richtige Schreibweise! Das Schlüsselwort "Basic" sollte genau so geschrieben werden, der Realm-String muss in doppelte (nicht einfache) Anführungszeichen eingeschlossen sein, [...]"
gruss,
wahsaga
Hi,
header("WWW-Authenticate: Basic realm=FACTORY");
header("HTTP/1.0 401 Unauthorized");
Sortiert PHP das noch um?
Der Status muß meines Wissens als erster Header der Response kommen.
Ich würd mich nicht drauf verlassen, daß PHP da noch die Reihenfolge korrigiert.
cu,
Andreas
hi,
header("WWW-Authenticate: Basic realm=FACTORY");
header("HTTP/1.0 401 Unauthorized");Sortiert PHP das noch um?
Der Status muß meines Wissens als erster Header der Response kommen.
zitat http://www.php.net/manual/de/features.http-auth.php:
"Vorsicht bei einigen Internet Explorer-Versionen - sie scheinen sehr wählerisch zu sein, was die Reihenfolge der Header angeht. Abhilfe schafft hier das Senden des WWW-Authenticate Headers vor dem HTTP/1.0 401."
gruss,
wahsaga
Hi,
header("WWW-Authenticate: Basic realm=FACTORY");
header("HTTP/1.0 401 Unauthorized");
Sortiert PHP das noch um?
Der Status muß meines Wissens als erster Header der Response kommen.
zitat http://www.php.net/manual/de/features.http-auth.php:
"Vorsicht bei einigen Internet Explorer-Versionen - sie scheinen sehr wählerisch zu sein, was die Reihenfolge der Header angeht. Abhilfe schafft hier das Senden des WWW-Authenticate Headers vor dem HTTP/1.0 401."
<cite src="[http://www.ietf.org/rfc/rfc2616.txt]">
6 Response
After receiving and interpreting a request message, a server responds
with an HTTP response message.
Response = Status-Line ; Section 6.1
*(( general-header ; Section 4.5
| response-header ; Section 6.2
| entity-header ) CRLF) ; Section 7.1
CRLF
[ message-body ] ; Section 7.2
6.1 Status-Line
The first line of a Response message is the Status-Line, consisting
of the protocol version followed by a numeric status code and its
associated textual phrase, with each element separated by SP
characters. No CR or LF is allowed except in the final CRLF sequence.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
</cite>
Das ist eigentlich ziemlich eindeutig. Die _erste_ Zeile ist die Status-Zeile, bestehend aus Protokollversion gefolgt vom numerischen Statuscode und der zugehörigen Text-Phrase, die einzelnen Elemente durch Leerzeichen getrennt.
cu,
Andreas
Hello,
<cite src="[http://www.ietf.org/rfc/rfc2616.txt]">
6 ResponseAfter receiving and interpreting a request message, a server responds
with an HTTP response message.Response = Status-Line ; Section 6.1
*(( general-header ; Section 4.5
| response-header ; Section 6.2
| entity-header ) CRLF) ; Section 7.1
CRLF
[ message-body ] ; Section 7.26.1 Status-Line
The first line of a Response message is the Status-Line, consisting
of the protocol version followed by a numeric status code and its
associated textual phrase, with each element separated by SP
characters. No CR or LF is allowed except in the final CRLF sequence.Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
</cite>
Das ist eigentlich ziemlich eindeutig. Die _erste_ Zeile ist die Status-Zeile, bestehend aus Protokollversion gefolgt vom numerischen Statuscode und der zugehörigen Text-Phrase, die einzelnen Elemente durch Leerzeichen getrennt.
Stammt das jetzt noch direkt von Postel? Oder wer hat dich das ausgedacht? Schließlich sind ja schon wieder ein paar Jahre der Verwässerung ins Land gegangen...
Liebe Grüße aus http://www.braunschweig.de
Tom