Passwort Authentifizierung funktioniert nicht mit IE5
Christian
- cgi
Hallo an alle,
habe ein kleines cgi/perl-Skript geschrieben, welches eine Formulareingabe (Login/Passwort)
entgegenimmt und den Browser mit "Location: Login:Passwort@www.Domain.de/secure" in
einen geschützten Bereich weiterleitet. Dieser ist mit .htaccess geschützt.
Mit Netscape funktioniert es problemlos. Der IE blendet aber zusätzlich nochmal das
"Browser-Passwortabfrage-Fenster" ein. Eine direkte Eingabe von
http://Login:Passwort@www.domain.de/secure funktioniert hingegen anstandslos.
Mein Ziel ist es, dieses Popup-Fenster durch eine Formulareingabe zu ersezten, welche
sich (meiner Meinung nach) besser in die bestehende Seite integrieren lässt.
Vielen Dank für Eure Hilfe!
Christian
habe ein kleines cgi/perl-Skript geschrieben, welches eine Formulareingabe (Login/Passwort)
entgegenimmt und den Browser mit "Location: Login:Passwort@www.Domain.de/secure" in
einen geschützten Bereich weiterleitet. Dieser ist mit .htaccess geschützt.
Mit Netscape funktioniert es problemlos. Der IE blendet aber zusätzlich nochmal das
»» "Browser-Passwortabfrage-Fenster" ein. Eine direkte Eingabe von
http://Login:Passwort@www.domain.de/secure funktioniert hingegen anstandslos.
Die von Dir verwendete Syntax ist auf der Ebene von HTTP-Headers meines Wissens nicht "legal". Daß es auf der URL-Zeile geht, liegt daran, daß beide Brower das Zusatzfeature anbieten, den URL zu zerlegen und Userid & Passwort zu entrahieren, die in einem separaten Feld des HTTP-headers an den Server geschickt werden müssen. Dieses Feature bietet der NS freundlicherweise auch dann an, wenn er einen Location-Header empfängt, und der M$ tut das nicht.
Zum Absaugen eines Dokuments gibt es in der ActivePerl-Dokumentation eine Beschreibung, wie man per Programm Webserver-geschützte Seiten ansprechen kann (ich sage jetzt bewußt *nicht* ".htaccess-geschützt", was das Verfahren an sich webserverunabhängig ist). Das steckt in der Beschreibung des Moduls "lwpcook" unter dem Thema "Access to protected documents". Ich poste den Schnipsel mal, da ich keinen passenden URL zur Hand habe:
Documents protected by basic authorization can easily be accessed like this:
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$req = new HTTP::Request GET => 'http://www.sn.no/secret/';
$req->authorization_basic('aas', 'mypassword');
print $ua->request($req)->as_string;
The other alternative is to provide a subclass of LWP::UserAgent that overrides the
get_basic_credentials() method. Study the lwp-request program for an example of this.
Das ist allerdings nicht exakt Deine Aufgabenstellung. Diese würde m. E. darin bestehen, dem *Browser* des Client genau dieses Verhalten beizubringen. Deshalb:
Mein Ziel ist es, dieses Popup-Fenster durch eine Formulareingabe zu ersetzen, welche
sich (meiner Meinung nach) besser in die bestehende Seite integrieren lässt.
tu's nicht ...
Vielen Dank für Deine Hilfe und die Erklärungen, Michael!
Christian