User und Passwort-Fensterle mit CGI/Perl aufrufen

Hallo zusammen!

Wenn man manchmal auf so Login-Zeugs klickt, dann kommt man nicht zu ner schnöden HTML-Seite mit Formular, dessen Daten dann von nem CGI verarbeitet werden, sondern es popt ein Systemfenster auf, mit „Login von sounso…bitte Benutzername und Passwort eintragen…“ und zwei Eingabefeldern.

Also ich mein jetzt wirklich nicht einfach ein weiteres Browserfenster vielleicht sogar ohne Symbol und Statusleiste in dem dann nen Formular eingebettet ist, sondern das sind richtige Systemfenster…

(Konnte ich verständlich machen was ich meine…? :wink:

Ok, jetzt die unerwartete Frage:

Wie mach ich das mit Perl 5 ?

Bin Dankbar für jede Antwort!

Benny

Hi,

Wie mach ich das mit Perl 5 ?

gar nicht. Du kannst das Browserverhalten nicht ändern, und dieses besagt, daß er nur die Logins weiterverwendet, die über ihn eingegeben wurden.

Programmiere also entweder Deinen eigenen Login-Mechanismus inkl. der Weiterübertragung der Logins, oder aber Apaches mod_auth mit dem bekannten Login-Fenster.

Cheatah

Das geht über den HTTP-Header, ich weiss jetzt leider nicht genau wie es geht, aber ich glaube du musst z.B. die Zeile

WWW-Authenticate: Basic realm=„Login“

in den HTTP-Header packen, also noch vor „Content-type: text/html\n\n“ oder sowas.

Dann sollte beim User was aufpoppen. Den Username hast du in deinem Script dann in der Umgebungsvariable REMOTE_USER wenn mich nicht alles täuscht, wie du das Passwort kriegst weiss ich leider gerade nicht.

Bruno

Das geht über den HTTP-Header, ich weiss jetzt leider nicht
genau wie es geht, aber ich glaube du musst z.B. die Zeile

WWW-Authenticate: Basic realm=„Login“

in den HTTP-Header packen, also noch vor „Content-type:
text/html\n\n“ oder sowas.

Dann sollte beim User was aufpoppen. Den Username hast du in
deinem Script dann in der Umgebungsvariable REMOTE_USER wenn
mich nicht alles täuscht, wie du das Passwort kriegst weiss
ich leider gerade nicht.

Hey, cool erstmal vielen Dank für den Hinweis wär ja schön wenn das doch irgendwie so einfach zu lösen wär…

Hab jetzt grad mal
print „WWW-Authenticate: Basic realm=„Login“\n“;
print „Content-Type: text/html\n\n“;
ausprobiert, geht aber nicht. Er scheint die erste Zeile zu ignorieren…

Weis da vielleicht noch jemand weiter?

Vielen Dank

Benny

Ich glaube du musst auch noch nen 401er Status ausprinten. Hier ein Header, den ich einer von mir mit .htaccess passwortgeschützten Seite entnommen habe.

HTTP/1.1 401 Authorization Required
Date: Wed, 06 Sep 2000 09:56:31 GMT
Server: Apache/1.3.4 (Unix) FrontPage/4.0.4.3 PHP/3.0.14
WWW-Authenticate: Basic realm=„Login“
Connection: close
Content-Type: text/html

MfG Bruno

HTTP/1.1 401 Authorization Required
Date: Wed, 06 Sep 2000 09:56:31 GMT
Server: Apache/1.3.4 (Unix) FrontPage/4.0.4.3 PHP/3.0.14
WWW-Authenticate: Basic realm=„Login“
Connection: close
Content-Type: text/html

Hi!

Also ich hab damit jetzt nochmal n’ bißchen rumprobiert, bin aber glaub ich dazu noch nicht Profi genug (bzw. Anfänger zuviel)…

Ich hab erstmal mit dem CGI.pm - Befehl header() folgendes versucht:
print $query->header(-status=>„401 Authorization Required“, -header=>„WWW-Authenticate: Basic realm=„Login““);
da kam dann folgendes bei raus:
Status: 401 Authorization Required
Header: WWW-Authenticate: Basic realm=„Login“
Content-Typ: text/html

(das war die Debug Ausgabe, im Netz hatt dieser Header keinerlei Auswirkungen)

Da mir das dann n’ bißchen komisch vorkam, dass der header() da so Zeugs wie „Status:“ noch davorklatscht hab ichs auch direkt probiert:

print „HTTP/1.1 401 Authorization Required\n“;
print „WWW-Authenticate: Basic realm=„Login“\n“;
print „Connection: close\n“;
print „Content-Type: text/html\n\n“;

Aber da bekomm ich (obwohl’s sich lokal kompilieren lässt) im Netz nen 500er Server-Error.

Ach ja und jetzt hab ich noch ne andre Idee:
Es gibt ja die Umgebungsvariable AUTH_TYPE. Kann ich die denn vielleicht setzten oder ist die nur lesen?

Oder was gibts noch für Ideen? Hat jemand sowas schonmal mit Perl/CGI gemacht?

Vielen Dank,

Benny