![]() |
idHTTPServer : Einloggen
Hi !
Mein Server funtkioniert soweit schon ganz gut ! Doch wie kann kann ich realisieren, dass sich Benutzer nur mit gültigem Passwort + Nutzername einloggen können ? Ich habe diesen Code :
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); Var Stream: TFilestream; TheString : String; begin if ARequestInfo.Document = '/' then begin try if ARequestinfo.Username = 'Assun' then begin inc(i); Caption := ('Bereits' + IntToStr(i) + 'Aufrufe'); AResponseInfo.ContentType := 'text/html'; Stream := TfileStream.Create('Admin/test.htm', fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; setlength(TheString, stream.size); stream.Read(TheString[1], stream.size); end except Exit; end; end else if ARequestInfo.Document = '/test.jpg' then begin try AResponseInfo.ContentType := 'image/jpeg'; Stream := TfileStream.Create('Admin/test.jpg', fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; except Exit; end; end; Gruß Assun |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
habe nun etwas code. doch ich weiss nicht wie ich den Namen übergeben soll.
Weiss da jemand was ? |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
Dann zeig doch mal deinen Code.
Was meinst du mit übergeben ? Von der HTML-Seite zu deinem Programm ? Stichwort: Submit gruss |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
Der Code steht oben.
Reicht es einfach die Felder abzusenden ?? Wie muss ich die Felder dann benennen ? |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
du musst
Delphi-Quellcode:
setzen. Damit bringt der Client (InternetExplorer etc.) einen Passwortdialog hoch wie man es von htaccess gewöhnt ist. Und auf diese Art und weiße kommt dann auch das Passwort zum Server.
AResponseInfo.AuthRealm
|
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
Du kannst es auch ganz normal wie ein Formular senden, die ergebnisse stehen dann in
Delphi-Quellcode:
gruss
ARequestInfo.params
|
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
Delphi-Quellcode:
geht nicht. da bringr er mir "inkompatible Typen, String und TStrings"
If ARequestInfo.params := 'Assun' then.........
nur wie soll ich da TStrings einbauen ? Und wie kann ich realisieren, dass nach 2 werten gefragt wird ? also so in etwa
Delphi-Quellcode:
?
if ARequestInfo.params := 'Assun' and 'meinpasswort' then....
:confused: |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
params ist vom Typ TStrings also
Delphi-Quellcode:
Die Anzahl der Parameter bekommst du mit
ARequestInfo.params[0]
ARequestInfo.params[1] ...
Delphi-Quellcode:
ARequestInfo.paramcount-1
|
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
ok, dank Mr.Knogges Hilfe (THX !!!) geht das einloggen nun !!
mit diesem Code :
Delphi-Quellcode:
und
function Parse(char, s: string; count: integer): string;
var i: Integer; t: string; begin if s[length(s)] <> char then s := s + char; for i := 1 to count do begin t := copy(S, 0, pos(char, s) - 1); s := copy(s, pos(char, s) + 1, length(s)); end; result := t; end;
Delphi-Quellcode:
Meine Bitte : geht bitte alle mal auf
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); Var Stream: TFilestream; TheString : String; i, Anzahl : Integer; begin if ARequestInfo.Document = '/' then begin try begin AResponseInfo.ContentType := 'text/html'; Stream := TfileStream.Create('Admin/login.htm', fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; setlength(TheString, stream.size); stream.Read(TheString[1], stream.size); Anzahl := ARequestInfo.Params.Count; for i := 1 to Anzahl do if (parse('=', ARequestInfo.params[0], 1) = 'submit') and (parse('=', ARequestInfo.params[0], 2) = '1') then if (parse('=', ARequestInfo.params[1], 1) = 'username') and (parse('=', ARequestInfo.params[1], 2) = 'Assun') then if (parse('=', ARequestInfo.params[2], 1) = 'password') and (parse('=', ARequestInfo.params[2], 2) = 'test') then begin AResponseInfo.ContentType := 'text/html'; Stream := TfileStream.Create('Admin/test.htm', fmOpenRead or fmShareDenyWrite ); AResponseInfo.ContentStream := Stream; setlength(TheString, stream.size); stream.Read(TheString[1], stream.size); userok := true; end; end except Exit; end; end; end; end. ![]() Um euch normal einzuloggen : Name = Assun Passw = test Und noch ne Frage : wie kann ich erreichen, dass das passw nicht mehr im Browser oben inner Adresszeile angezeigt wird ? Vielen Dank für eure Mühe ! Gruß Assun Edit // Und wie immer bitte Rückmeldung geben. also "Geht das einloggen?", "habt ihr ne Sicherheitslücke gefunden?" oder "wisst ihr wie ich das umgehen kann dass man inner Adresszeile den Namen + passw sieht?" ;-) |
Re: idHTTPServer : Login Identifizierung, wie realisieren ?
Hat jemand geschafft auf test.htm zuzugreifen ohne sich einzuloggen ?
Oder hat jemand ne Idee wie man es umgehen kann dass das passw in der Adresszeile angezeigt wird ? ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz