Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Login mit TWebBrowser (https://www.delphipraxis.net/38172-login-mit-twebbrowser.html)

Smarty 16. Jan 2005 11:30

Re: Login mit TWebBrowser
 
Danke, wenn ich morgen Zeit finden sollte werde ich das mal probieren.

chkdsk 17. Jan 2005 16:30

Re: Login mit TWebBrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab ein kleines Tool angehängt, dass aus Benutzername und Passwort den Authorization-String für HTTP-Header generiert.

Für die eigene Anwendung sicher leicht selbst zu implementieren (daher kein Source Code), aber für den, der einfach nur mal ein bisschen "forschen" will, oder das Ding bei der Entwicklung braucht, sicher ganz nützlich.

Stefan Hueg 17. Jan 2005 16:50

Re: Login mit TWebBrowser
 
Quark er braucht diese Base64 Scheisse doch gar nicht. Habe die letzten Tage selbst viel mit dem Steuerelement gearbeitet und es kan alles, was man braucht.

@Smarty: Wenn du uns sagen könntest, um welche Seite es sich handelt, dann kann ich dir evtl. weiterhelfen. Habe selbst mit Logins gearbeitet, und zwar sogar mit welchen, die SSL-verschlüsselt waren ;)

Stefan Hueg 17. Jan 2005 16:52

Re: Login mit TWebBrowser
 
Zitat:

Zitat von chkdsk
wAls Sniffer kann ich CommView von TamoSoft empfehlen.

Un was, wenn die Login-Seite SSL-verschlüsselt is, hm?

chkdsk 17. Jan 2005 19:49

Re: Login mit TWebBrowser
 
Zitat:

Zitat von Stefan Hueg
Zitat:

Zitat von chkdsk
wAls Sniffer kann ich CommView von TamoSoft empfehlen.

Un was, wenn die Login-Seite SSL-verschlüsselt is, hm?


Das ändert prinzipiell ja nichts daran, dass der gleiche Header verwendet wird. Wenn du das abhorchen willst, würde ich eine kleine Server-Anwendung schreiben, die alle Anfragen SSL-verschlüsselt an den echten Server weiterleitet.
Funktioniert eigentlich ganz gut, du musst halt nur die Serveradresse, die irgendwo im Programm steht ändern, und eventuelle Schutzmaßnahmen, die das verhindern sollen, aushebeln.


Zitat:

Quark er braucht diese Base64 Scheisse doch gar nicht. Habe die letzten Tage selbst viel mit dem Steuerelement gearbeitet und es kan alles, was man braucht.
Das ist die typische Hausfrauen-Lösung. Dass dein tolles Steuerelement Benutzername und Passwort auch mit Base64 verschlüsselt und überträgt, ist dir anscheinend egal. Du willst auch nie irgendwas selber schreiben, oder mal auf etwas anderes, als dieses Steuerelement setzen, auch wenn es möglicherweise eine deiner tollen Anforderungen erfüllt.

Für alle anderen, die verstehen wollen, WAS sie da gerade machen, un die selber die Header erzeugen oder SSL-Layer implementieren wollen ist das Tool. Wenn's dich stört, lad's halt nicht runter!

Stefan Hueg 17. Jan 2005 22:05

Re: Login mit TWebBrowser
 
Hier dieser Sample-Code tut genau das was du willst:

Delphi-Quellcode:
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  //no form on document
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  //count forms on document
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        //when the fieldname is found, try to fill out
        if FormItem.Item(j).Name = FieldName then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
        Exit;
      end;
    end;
  end;
end;

procedure TForm1.Navi2Page(URL : String);
  begin
    Webbi1.Navigate(URL);
    Wait;
  end;

procedure TForm1.Wait;
begin
  while Webbi1.ReadyState <> READYSTATE_COMPLETE do
  begin
    Application.ProcessMessages;
    Sleep(0);
  end;
  while Webbi1.Busy = True do
  begin
    Application.ProcessMessages;
    Sleep(0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Geht auf die Website
  Navi2Page('http://deine_url.de');
  //Gibt die Benutzerinfos in die Felder ein
  FillForm(Webbi1, 'Name', Edit1.Text);
  FillForm(Webbi1, 'PW', Edit2.Text);
  //Schickt das ganze an den Server
  Webbi1.OleObject.Document.forms.item(0).submit;
end;
Wobei Webbi1 das Webbrowser-Steuerelement ist. Musst halt nur bei Navi2Page() die URL eintragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
Seite 2 von 2     12   

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