AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHTTPServer : Einloggen
Thema durchsuchen
Ansicht
Themen-Optionen

idHTTPServer : Einloggen

Ein Thema von Assun · begonnen am 24. Jul 2005 · letzter Beitrag vom 25. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#1

idHTTPServer : Einloggen

  Alt 24. Jul 2005, 11:55
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 = 'Assunthen
  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
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#2

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 14:23
habe nun etwas code. doch ich weiss nicht wie ich den Namen übergeben soll.

Weiss da jemand was ?
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 14:25
Dann zeig doch mal deinen Code.
Was meinst du mit übergeben ?

Von der HTML-Seite zu deinem Programm ?
Stichwort: Submit

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#4

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 14:46
Der Code steht oben.

Reicht es einfach die Felder abzusenden ??

Wie muss ich die Felder dann benennen ?
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 15:02
du musst
AResponseInfo.AuthRealm 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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#6

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 15:06
Du kannst es auch ganz normal wie ein Formular senden, die ergebnisse stehen dann in ARequestInfo.params gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#7

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 16:44
If ARequestInfo.params := 'Assunthen......... geht nicht. da bringr er mir "inkompatible Typen, String und TStrings"

nur wie soll ich da TStrings einbauen ?

Und wie kann ich realisieren, dass nach 2 werten gefragt wird ? also so in etwa

if ARequestInfo.params := 'Assunand 'meinpasswortthen.... ?

:confused:
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#8

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 16:49
params ist vom Typ TStrings also
Delphi-Quellcode:
ARequestInfo.params[0]
ARequestInfo.params[1]
...
Die Anzahl der Parameter bekommst du mit
ARequestInfo.paramcount-1
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#9

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 24. Jul 2005, 18:58
ok, dank Mr.Knogges Hilfe (THX !!!) geht das einloggen nun !!

mit diesem Code :

Delphi-Quellcode:
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;
und

Delphi-Quellcode:
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.
Meine Bitte : geht bitte alle mal auf http://assun.gotdns.com/ (mein delphi http server) und loggt euch ein. dann steht da "sie sind eingeloggt". das ist eine htm datei namens "test.htm" <-- versucht mal diese anzuzeigen ohne das ihr euch einloggt !

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?"

Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#10

Re: idHTTPServer : Login Identifizierung, wie realisieren ?

  Alt 25. Jul 2005, 09:51
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 ?

http://assun.gotdns.com
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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