AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebbrowser: Übermittlung von Session IDs
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser: Übermittlung von Session IDs

Ein Thema von Ajin · begonnen am 26. Aug 2007 · letzter Beitrag vom 27. Aug 2007
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

TWebbrowser: Übermittlung von Session IDs

  Alt 26. Aug 2007, 11:18
Schönen Sonntag ihr alle!

Ich möchte eine Anmeldung per Webbrowser automatisch erledigen lassen. Mit folgendem Code kann ich simple Seiten aufrufen und Formulardaten ausfüllen + submitten:

Delphi-Quellcode:
WebBrowser1.Navigate('http://www.meineseite.de/login.php');
F_Logfile.logfile.Lines.add(DateTimeToStr(now) +' Autologin');
webbrowser1.oleobject.document.forms.item(0).elements.item('login').value := 'ichbins';
webbrowser1.oleobject.document.forms.item(0).elements.item('passwd').value := 'geheim';
webbrowser1.oleobject.document.forms.item(0).submit;
Klappt wunderbar!Bis jetzt....

Folgender HTML Code verbirgt sich hinter dem Login:

<form method=POST action="/test.shtml" target=_blank style="display:inline-table;">
<input type=hidden name=cid value="xxxxxx">
<input type=hidden name=id value="x-x-xxxxx">

<table cellspacing=0 cellpadding=0 style="display:inline;">
<tr><td class=info colspan=4></td></tr>
<tr><td class=info colspan=2 align=left><input style="cursor:hand;" type=button class=btinfo value="Schafzucht" onclick="window.open('gacnf.shtml?cid=1028712&id=0-2-65322','gacnf','width=450,height=600,scrollbars=ye s,toolbar=no,status=no,resizable=no')"></td><td class=info colspan=2 align=right><input type=image class=btinfo src="http://meinseite.de/img/login.jpg" name="login"></td></tr>
</table>

Nun zu meinen beiden Fragen:

1) Ich kann diese Form zwar auch submitten, jedoch fehlt die Sessioninformation (fett markierte Zeilen) Wie kann ich diese Session Info mit dem TWebBrowser weitergeben?
2) Die Folgeseite wird in einem neuen Fenster geöffnet - somit verlässt es die TWebbrowser Komponente und gleichzeitig meiner "Kontrolle" Wie kann man dem entgegenwirken?

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TWebbrowser: Übermittlung von Session IDs

  Alt 26. Aug 2007, 12:08
Hallo Jaimy,

zu (1): Das kann ich mir nicht vorstellen, dass diese Information verloren geht. Wie hast du das festgestellt?

zu (2): Du kannst im Ereignis OnNewWindow2() den Browser festlegen, in dem die Seite gerendert werden soll.

Auch dir einen Schönen Sonntag
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TWebbrowser: Übermittlung von Session IDs

  Alt 26. Aug 2007, 16:17
Zu 1)

Das Login wird nicht akzeptiert weil die Session angeblich abgelaufen ist. Wenn ich manuell auf den loginbutton drücke ist alles in Ordnung, aber mit:

webbrowser1.oleobject.document.forms.item(1).submit; klappt das nicht. An was könnte das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: TWebbrowser: Übermittlung von Session IDs

  Alt 26. Aug 2007, 16:45
Ich würde es so machen:
1) dem HtmlSubmit-Button eine ID verpassen ( id="einmalig"
2) dieses Button dann so im Code finden und klicken
Delphi-Quellcode:
function GetElementByID(WB: TWebBrowser; elementID: WideString; var element: IHTMLElement): Boolean;
begin
  try
    element := (WB.Document as IHTMLDocument3).getElementById(elementID) as IHTMLElement;
    Result := element <> nil;
  except
    Result := False;
  end;
end;

...

var
  button: IHTMLElement;
begin
  if GetElementByID(myWB, 'einmalig', button) then
  begin
    button.click;
  end;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: TWebbrowser: Übermittlung von Session IDs

  Alt 26. Aug 2007, 16:47
Zwei Dinge fallen mir noch auf:

Du wartest nach dem Navigate() nicht ab, bis die Seite geladen ist. Theoretisch kann es passieren, dass du auf das falsche DOM zugreifst.

Und du verwendest zuerst Forms.Item(0) und jetzt Forms.Item(1) um das Submit auszuführen!

Du könntest die Anmeldung auf einem lokalen HTTP-Server mit phpinfo() durchspielen um den Dingen auf die Spur zu kommen.
Oder du verwendest einen lokalen Proxy, den du belauschen kannst.
Vielleicht müssen ja auch nur noch zusätzlich Cookies akzeptiert werden?
Wie hast du die Eigenschaft Silent des WebBrowser Controls eingestellt?
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#6

Re: TWebbrowser: Übermittlung von Session IDs

  Alt 27. Aug 2007, 09:13
Cookies müssen auf der Seite akzeptiert werden, ich dachte das ist "default" Einstellung eines TWebbrowser.
Ich habe

Register as Browser = FALSE
Register as DropTarget = TRUE
Silent = FALSE
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:03 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