Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Authentifizierung Indy Http-Server (https://www.delphipraxis.net/141482-authentifizierung-indy-http-server.html)

mts 9. Okt 2009 20:08


Authentifizierung Indy Http-Server
 
Hallo zusammen,

versuche gerade mit dem TIdHTTPServer eine Authentifizierung hinzubekommen.
Im Browser soll man mit http://username:password@example.com

Also dachte ich, ich geh einfach in die CommandGet und überprüfe mit ARequestInfo.AuthExists, AuthUsername, ...
ob alles richtig ist.

Leider ist AuthExists immer false und auch AuthUsername und AuthPassword ist leer.
Was muss ich denn machen, damit das funktioniert?


Gruß
mts

SubData 9. Okt 2009 20:25

Re: Authentifizierung Indy Http-Server
 
So ganz grob sollte folgendes hinkommen :)

Delphi-Quellcode:
if ((ARequestInfo.AuthUsername <> 'scheff') or (ARequestInfo.AuthPassword <> 'geheim')) then
begin
  AResponseInfo.ContentText := 'Benutzername und Kennwort bitte...';
  AResponseInfo.AuthRealm := 'Scheff-Interface';
end else
begin
  AResponseInfo.ContentText := 'alles toll';
end;

mts 9. Okt 2009 20:30

Re: Authentifizierung Indy Http-Server
 
da passiert auch nicht mehr.
Ich hatte ja die Hoffnung, dass wenn ich
Delphi-Quellcode:
  AResponseInfo.ContentText := 'Benutzername und Kennwort bitte...';
  AResponseInfo.AuthRealm := 'Scheff-Interface';
bei leerem Benutzernamen oder Kennwort zurückgebe, direkt noch ein CommandGet ausgelöst wird.
Passiert aber nicht.

Ich dachte auch eigentlich, dass bei einem http://hans:peter@example.com

automatisch
ARequestInfo.AuthUsername = 'hans'
und
ARequestInfo.AuthPassword = 'peter'

sein sollte

jfheins 9. Okt 2009 21:09

Re: Authentifizierung Indy Http-Server
 
Guck mal da: http://en.wikipedia.org/wiki/Basic_a...authentication

Du musst einen 401 zurückgeben ;)

mjustin 9. Okt 2009 21:18

Re: Authentifizierung Indy Http-Server
 
Zitat:

Zitat von mts
versuche gerade mit dem TIdHTTPServer eine Authentifizierung hinzubekommen.
Im Browser soll man mit http://username:password@example.com

Tipp: die Angabe von Benutzername und Passwort als Teil der URL ist nicht in der HTTP-Spezifikation vorgesehen:

http://de.wikipedia.org/wiki/Uniform...ame.2FPasswort

und kann daher von Browser zu Browser sehr unterschiedlich (oder gar nicht) unterstützt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz