Hallo,
ich suche eine Möglichkeit via CGIHTTPServer bzw. BaseHTTPServer meinen Usern einen Login zu ermöglich. Wie dieser Login ausschaut ist mir relativ egal, es kann also ein Form auf der Seite selbst oder eine Basic HTTP (aufpoppendes Fenster)-Lösung sein. Wenn jemand so etwas schonmal gemacht hat oder sonstige Tips geben kann, wäre ich für jede Antwort dankbar.
Grüße,
Vortec
CGIHTTPServer - Authentifizierung
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Da bietet IMHO CGIHTTPServer bzw. BaseHTTPServer keine Möglichkeiten für...
Du must es einfach per CGI selber Programmieren... Im einfachsten Fall eine Text-Datei mit den Usernamen und Passwörtern ablegen und diese abgleichen...
Du must es einfach per CGI selber Programmieren... Im einfachsten Fall eine Text-Datei mit den Usernamen und Passwörtern ablegen und diese abgleichen...
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Da muss ich doch wiedersprechen.jens hat geschrieben:Da bietet IMHO CGIHTTPServer bzw. BaseHTTPServer keine Möglichkeiten für...
Du must es einfach per CGI selber Programmieren... Im einfachsten Fall eine Text-Datei mit den Usernamen und Passwörtern ablegen und diese abgleichen...
CGIHTTPServer hat doch sicher eine Funktion, die Requests entgegen nimmt.
Da kann man doch eine HTTP Authentifizierung im Header mitsenden.
Muss aber erstmal sehen, wie der Header dahingehend aussehen müsste...
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hmmm! Daran habe ich überhauptnicht gedacht... Es ist doch immer wieder erstaunlich, wie einfach doch HTTP und andere Protokolle funktionieren...blackbird hat geschrieben:CGIHTTPServer hat doch sicher eine Funktion, die Requests entgegen nimmt. Da kann man doch eine HTTP Authentifizierung im Header mitsenden.
Hab spontan das gefunden:
http://php3.de/manual/de/features.http-auth.php
http://www.ietf.org/rfc/rfc2617.txt
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
ich wollte dieses thema mal wieder aufgreifen...
ich bin gerade dabei, etwas zu schreiben, das ich dann mittels cgi auf einem server ausfuehren will. nun brauche ich aber auch authentifizierung. und wie aus diesem thread bereits hervorging, gibt es wohl die moeglichkeit, eine authentifizierungsaufforderung an den browser zu senden. sind das dann diese huebschen fenster, die sich im firefox, internet explorer, ... oeffnen, und zur eingabe von benutzername und passwort auffordern? wenn ja, wie genau koennte man so etwas realisieren? aus den o. g. links bin ich nicht so recht schlau geworden.
mfg
roschi
ich wollte dieses thema mal wieder aufgreifen...
ich bin gerade dabei, etwas zu schreiben, das ich dann mittels cgi auf einem server ausfuehren will. nun brauche ich aber auch authentifizierung. und wie aus diesem thread bereits hervorging, gibt es wohl die moeglichkeit, eine authentifizierungsaufforderung an den browser zu senden. sind das dann diese huebschen fenster, die sich im firefox, internet explorer, ... oeffnen, und zur eingabe von benutzername und passwort auffordern? wenn ja, wie genau koennte man so etwas realisieren? aus den o. g. links bin ich nicht so recht schlau geworden.

mfg
roschi
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Die einfachste Sache wäre per .htaccess einen Login zu regeln: http://httpd.apache.org/docs/2.0/howto/auth.html
Ansonsten bieten Frameworks wie z.B. django alles was man braucht.
Ansonsten bieten Frameworks wie z.B. django alles was man braucht.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!jens hat geschrieben:Die einfachste Sache wäre per .htaccess einen Login zu regeln: http://httpd.apache.org/docs/2.0/howto/auth.html
Ansonsten bieten Frameworks wie z.B. django alles was man braucht.
Ja, das ist wirklich ein Grund von CGI abzulassen. Sobald du mit Authentifizierung und Sessions zu tun hast, ist CGI einfach zu weit unten. Das ist der richtige Zeitpunkt auf ein Framework wie Django, oder wenns kleiner sein soll, auf CherryPy umzusteigen.
mfg
Gerold

PS: http://www.python-forum.de/post-99357.html
.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
ja, der login muss ja nicht unbedingt mit cgi gemacht werden. aber wie wird denn z. b. dieser geregelt?
http://opensvn.csie.org/kruvion/
ich nutze auch kein apache, weil ich was haben moechte, was aus reinem python besteht. wie macht denn apache das?
mfg
roschi
ja, der login muss ja nicht unbedingt mit cgi gemacht werden. aber wie wird denn z. b. dieser geregelt?
http://opensvn.csie.org/kruvion/
ich nutze auch kein apache, weil ich was haben moechte, was aus reinem python besteht. wie macht denn apache das?
mfg
roschi
Der Server schickt noch einen ``WWW-Authenticate``-Header mit. Ohne bringt der Browser den Dialog nicht.Y0Gi hat geschrieben:Wenn der Browser einen 401-Statuscode erhält, poppt er afaik automatisch einen entsprechenden Dialog auf.
Jener Header ist afaik dafür da, zwischen Basic/Digest/Sonstwas-Auth zu unterscheiden. Abhängig davon könnte der Browser natürlich unterschiedlich reagieren. Ob mit oder ohne diesen der gewünschte Dialog aufpoppt oder nicht, ist allerdings insofern irrelevant, weil nur mit beidem (Statuscode und der Header) zusammen ein Schuh draus wird.
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
entschuldigt bitte, dass ich mich so lange nicht gemeldet habe.
ja, aber wie kann ich nun einen solchen statuscode und header senden?
es waere schoen, wenn ihr code posten wuerdet.
mfg
roschi
PS: danke, dass ihr mir schon soweit geholfen habt!
entschuldigt bitte, dass ich mich so lange nicht gemeldet habe.
ja, aber wie kann ich nun einen solchen statuscode und header senden?
es waere schoen, wenn ihr code posten wuerdet.
mfg
roschi
PS: danke, dass ihr mir schon soweit geholfen habt!
Zuletzt geändert von roschi am Samstag 11. Oktober 2008, 20:09, insgesamt 1-mal geändert.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mit CGI?
Ansonsten hängt es natürlich ab ob du ein Framework benutzt oder nicht.
Code: Alles auswählen
print "Key: Value"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
ich nutze kein framework. ich moechte nur eine authentifizierungsaufforderung senden, und dann pruefen, ob die eingaben korrekt waren. (ja, mit cgi)
wenn ja: seite anzeigen
wenn nein: fehler
mfg
roschi
ich nutze kein framework. ich moechte nur eine authentifizierungsaufforderung senden, und dann pruefen, ob die eingaben korrekt waren. (ja, mit cgi)
wenn ja: seite anzeigen
wenn nein: fehler
mfg
roschi
Zuletzt geändert von roschi am Samstag 11. Oktober 2008, 20:08, insgesamt 1-mal geändert.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Man kann auch prima 401 ohne WWW-Authenticate zurücksenden. Ob das Sinn macht, sei mal dahin gestellt, möglich ist es.Y0Gi hat geschrieben:Jener Header ist afaik dafür da, zwischen Basic/Digest/Sonstwas-Auth zu unterscheiden. Abhängig davon könnte der Browser natürlich unterschiedlich reagieren. Ob mit oder ohne diesen der gewünschte Dialog aufpoppt oder nicht, ist allerdings insofern irrelevant, weil nur mit beidem (Statuscode und der Header) zusammen ein Schuh draus wird.
Der Browser wird dann keine Authentifizierungsinformationen vom User erfragen, weil die Website ja nicht nach Authentifizierung verlangt

Joa, 401 könnte separat auch Sinn ergeben, etwa wenn der Client auf einem anderen (ihm vielleicht bekannten) Weg die Authentifizierung durchführen soll (z.B. ein Cookie mitsenden).
Wenn die Website nicht nach Authentifizierung verlangt, dann könnte man auch einen 403 senden.
Wenn die Website nicht nach Authentifizierung verlangt, dann könnte man auch einen 403 senden.
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!
ok, ich denke, dass ich dann doch lieber die variante von apache nehme. scheint mir mit python doch nicht so ganz einfach...
danke fuer die hilfe
mfg
roschi
ok, ich denke, dass ich dann doch lieber die variante von apache nehme. scheint mir mit python doch nicht so ganz einfach...
danke fuer die hilfe
mfg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]