Autor |
Beitrag |
bruce185
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Sa 18.12.10 20:47
Hallo,
ich hab mal versucht mich mit IdHTTP auf hotmail.de anzumelden, leider bekomme ich folgende Quellcode zurück:
Quelltext 1: 2: 3: 4: 5:
| WindowsLive ID Aktualisieren Sie Ihren Browser Bevor Sie sich bei Windows Live ID-Sites und -Diensten anmelden k�nnen, m�ssen Sie Ihren Browser aktualisieren. Wenn Sie Microsoft Internet Explorer verwenden, k�nnen Sie die aktuelle Version installieren. Rufen Sie die Internet Explorer-Website auf.
Wenn Sie einen anderen Browser verwenden, aktualisieren Sie ihn auf die neueste Version. |
Ich experimentiere ein bisschen mit den Indy-Komponenten rum und möchte das mal versuchen.
Gibt es Vielleicht eine möglichkeit das Problem zu umgehen?
Vielen Dank schonmal.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 21:05
Das geht nicht mit vertretbarem Aufwand. Die Anmeldung und alles andere läuft dort über Skripte. Dementsprechend müsstest du diese Einzelaktionen nachvollziehen und selbst machen.
Ohne Skripte geht die Seite vielleicht auch, dann reicht es, wenn du einen bekannten Browser als User Agent angibst. Denn darüber stellt der Server fest, ob der Browser geeignet ist.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Sa 18.12.10 21:23
Danke.
Das habe ich auch schon versucht, aber dann erhalte ich diese fehlermeldung:
Delphi-Quelltext 1:
| Project Project1.exe raised exception class EIdSocketError with message 'Socket Error # 0' |
Hier ist mal mein Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| IdHTTP1.CookieManager := IdCookieManager1; IdHTTP1.AllowCookies := true; IdHTTP1.Request.Host := 'evsecure-ocsp.verisign.com'; IdHTTP1.Request.ContentType := 'application/ocsp-request'; IdHTTP1.Request.Connection:='Keep-Alive'; IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 YFF35 Firefox/3.6.13'; IdHTTP1.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; IdHTTP1.Request.AcceptLanguage := 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3'; IdHTTP1.Request.AcceptCharSet := 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'; Quelltext := IdHTTP1.Post('https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1292375029&rver=6.1.6206.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1031&id=64855&mkt=de-de&cbcxt=mai&snsc=1', Params); WB_LoadHTML(WebBrowser1,Quelltext); |
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 21:31
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Sa 18.12.10 21:40
Danke.
Hab mal versuchen wollen über IdHTTP mich auf die schnellste möglichkeit einzuloggen um eine beliebige Readme zu speichern über mein Programm, deshalb wollte ich das ganze über IdHTTP machen.
Ich werde Vielleicht eine andere möglichkeit finden, wenn nicht, dann lass ich es ambesten.
Danke Dir trotzdem für die Hilfe.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.12.10 21:48
bruce185 hat folgendes geschrieben : | Hab mal versuchen wollen über IdHTTP mich auf die schnellste möglichkeit einzuloggen um eine beliebige Readme zu speichern über mein Programm |
Öh, wie meinen?
Was willst du speichern und wo?
Eine Readme aus dem Internet herunterladen? Umgekehrt?
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Sa 18.12.10 23:38
Damit meinte ich die Statusnachricht von MSN, hab mir einfach mal überlegt über ein Programm die Nachricht zu ändern oder zu entfernen.
Edit: Ich habe jetzt bei IdSSLIOHandlerSocketOpenSSL1>SSLOptions>Method [sslvSSLv2] ausgewählt und nun geht es jetzt, nur bekomme ich jetzt eine Meldung, dass Coockies zugelassen werden müssen.
Wie mache ich das ambesten mit den Coockies?
Vielen Dank schonmal.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 19.12.10 01:09
Du musst nicht nur Cookies zulassen, sondern auch einen CookieManager erstellen und der Komponente zuweisen.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: So 19.12.10 01:16
Coockie Manager habe ich ja auf meiner Form, wie man es auch im Quellcode hier sehen kann wo ich es der IdHTTP zuweise:
Delphi-Quelltext 1:
| IdHTTP1.CookieManager := IdCookieManager1; |
Ich werde mal kucken wie ich das ambesten machen kann.
Vielen Dank.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 19.12.10 01:58
Stimmt, das habe ich irgendwie komplett übersehen.
Ich rate einmal: Du könntest AcceptRedirect oder so ähnlich auf True stellen, vielleicht wird eine Weiterleitung versucht. Aber sonst keine Ahnung was da vielleicht noch gemacht werden muss.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: So 19.12.10 02:12
Danke Dir.
Das ist schon auf True.
Hier sind mal die Response-Header Daten von hotmail.de, die ich gesnifft habe:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| (Status-Zeile) HTTP/1.1 200 OK Cache-Control no-cache Connection close Date Sat, 18 Dec 2010 23:20:13 GMT Pragma no-cache Content-Type text/html; charset=utf-8 Expires Sat, 18 Dec 2010 23:19:13 GMT Server Microsoft-IIS/6.0 PPServer PPV: 30 H: BAYIDSLGN1J39 V: 0 P3P CP="DSP CUR OTPi IND OTRi ONL FIN" X-XSS-Protection 0 Set-Cookie MSPOK= ; expires=Thu, 30-Oct-1980 16:00:00 GMT;domain=login.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie PPAuth=AWvKgFGlJusJDb3HVe1v8xQ7QOBRrLd7YtZXfffUZ6eoyCddBjxFFvCn2EjuneRY9N6qB*bVxTQqcYWFoZmeU8CaZcSRU4mnpHxWE8KzxpEesCUb0hSHPHNZ!1C58I5DqV7yYQ39QlVSNjbVJHWS6A9sHUgeJXfn658BARTC9Ngfe*OH7k9daX25f5vWXOICbDHZcfJxt*1VJetFRbGlYC4jEUNqTptsT8oa8Kg$; domain=login.live.com;secure= ;path=/;HTTPOnly= ;version=1 Set-Cookie PPLState=1; domain=.live.com;path=/;version=1 Set-Cookie MSPShared= ; HTTPOnly= ; domain=login.live.com;path=/;Expires=Thu, 30-Oct-1980 16:00:00 GMT Set-Cookie MSPCID=1fa1b78e565f8680; HTTPOnly= ; domain=login.live.com;path=/;Expires=Wed, 30-Dec-2037 16:00:00 GMT Set-Cookie WLOpt=otcjs=1&credtype=1&act=[1][5];domain=login.live.com;path=/;Expires=Wed, 30-Dec-2037 16:00:00 GMT Set-Cookie RPSTAuth=EwDgARAnAAAUWkziSC7RbDJKS1VkhugDegv7L0eAAPedZ3baI51xWhV2ZTViR+JdX3cntvRhJtxIoasIlvJEp356SdxvY9fhAxXYhqGUD86FQZ6ozTJrZHHy0m6B6Bx/9f2V4uKJTKWq1e4sZpOle4+O6wxjTLVvsrlJq2h2lJu2Z9py3zfu2Fn4A5TI4MOnablByalxc21DQFJ7X5GCA2YAAAhI4sUlEY8U+jABs7iFu5DR3ki3f7GTvmgU0wlp0sGFCfXRGMN8JtzqLYjDg07a1UpoDhE6C5qlQwncVEOr8n4RAopZ59wyw0GZpIu9rMS2oZd6+fL5UBhDhGj+d/HS338C8/RQAigxZvs24ymFyvZozIB9jQld9eedd9tnJ9Xrt6r5iy1JEks4uM6dw/Tw4MKg0CsmYbDAthO0q4oQOgFxIWjYhO2/yGrT09GT6DY7mTyPFFU9+DYh3VryA83IjzOc0MTrIkjqGzfWr1d7mDumhyOM9VNA+mB6Vr0SbBBFQsKvSpH+Cx6/Vnaw3g9hJ01dFKXDQMfCPKr8Zw3lKfghKwpTgsHrX3JPsdfI39zhQ5iJBIqU6Wd4I8s/fXCdWVwjs9nwrulwXHqaD7Glw8cBbkkR+kFk5MEF7l8B; domain=.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie RPSTAuthTime=1292714413; domain=login.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie MSPAuth=2lHFafS8uD**aACFz9AwjoDzUI4q82p2YlhwTPqlpkgzyz*hpHonRjk4qMgNSutMqem5q9MROxJKeDBMgGIYjSfrZHLzu0Ni0i1HJUK*sraH47TL0a36iDZywycakGIBoS; domain=.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie MSPProf=2oE2S5hQFERy1GXdw38ZR9cboDN9ja64k6hRp1a61XF!8RTnpif9t6svGxmBMCMFvEVMtBuZpH3HbOEqAZ6dRs9ZHxld*1wV9Ds18v7j3Vj9*rgTWVa6iu1bSFiUuFf19HZOagfaqLdq8zt6dsJ93yVoKTYDnURR3fR16aS25A0d993HK7mI2HpZh*J1DwuoQc; domain=.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie MSNPPAuth=Cd!1*N1oqY6eD1b8!!Zgq*lF*BIOXzOxrnW1HlpbLLk2t9chrvBLxUCpD9Zvl8jzXdbM5s6Fiyx17FLssx*WRUrTFY0C3TcyROJSCsWh5ZXBnL1YN2!O704DfBNT0KdMKrQ1sBIGstd*JbL*dXoUH*rPFdtfLsNA1zfWx1U6!aYrF!NOfiPa8Eo4QE63jkZqIkzCxwSdLnyOypGAlTBksJ7NI1HkWAhcEZT*JI0!lmQyaNPZZ06cxSwMJZpFFJbG3Zbini9AFSVWrVm5tBcmXU*YKH4vtk61cQTFw34g!cBNh3r6xws5xWcbN7LJ*uijT0E*7YhMklpeFqHyyUbMHgS7Sn1*qB8oBHTd0vN43N!uew0aiIKkuZNdMCTRP4c!kPASxhO1notWfQ5XKGrOE71cRfK8P0x4WqgrDOiuq6hyXxIS8AwptADjf2UanumiaBeZTTWUsji8Ch430l2yDqhmXC16Tkx3yRAJDZc$; domain=.live.com;path=/;HTTPOnly= ;version=1 Set-Cookie MH=MSFT; expires=Wed, 30-Dec-2037 16:00:00 GMT;domain=.live.com;path=/;version=1 Set-Cookie MHW=; expires=Thu, 30-Oct-1980 16:00:00 GMT;domain=.live.com;path=/;version=1 Set-Cookie MHList=; expires=Thu, 30-Oct-1980 16:00:00 GMT;domain=.live.com;path=/;version=1 Set-Cookie NAP=V=1.9&E=a45&C=kYLliPmYPjt6JNNES7PgSkmjLjdirJZrX4ZY96L1oQENe454Wh1oVA&W=1;domain=.live.com;path=/;Expires=Tue, 29-Mar-2011 06:20:13 GMT Set-Cookie ANON=A=983A682AF9793CDCC77DA482FFFFFFFF&E=a9f&W=1;domain=.live.com;path=/;Expires=Thu, 07-Jul-2011 06:20:13 GMT Set-Cookie MSPVis=$9;domain=login.live.com;path=/ Set-Cookie pres=; expires=Thu, 30-Oct-1980 16:00:00 GMT;domain=.live.com;path=/;version=1 Set-Cookie LOpt=1; domain=login.live.com;path=/;version=1 Set-Cookie MSPSoftVis=@72198325083833620@:@; domain=login.live.com;path=/;version=1 Content-Encoding gzip Vary Accept-Encoding Transfer-Encoding chunked |
Die Cookies muss ich ja bei CookieManager hinzufügen oder?
Ich hab das versucht, leider ohne erfolg.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 19.12.10 03:02
Also wenn da nur eine Antwort zurückkommt, dann muss Hotmail schon beim ersten Aufruf die Cookies vermisssen. Du rufst also eine Loginseite auf, die bereits nicht die erste ist, die der Benutzer aufruft.
Du musst das schon der Reihe nach so machen als ob du normal auf die Seite gehst. Nur dann bekommst du die entsprechenden Cookies auch mit...
Da die Seite hier ja Cookies setzt, könnte auch ein erneuter Aufruf gehen, keine Ahnung. 
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Di 21.12.10 22:54
Danke Dir.
Ich lese jetzt erstmal hotmail.de aus und im CookieManager befindet sich dann nur 1 Cookie Text, diese ich mit:
Delphi-Quelltext 1:
| IdCookieManager1.CookieCollection.Items[i].CookieText |
auslese.
Hier der Cookie Text:
Quelltext 1:
| MSPRequ=lt=1292963900&co=1&id=64855; path=/; domain=.login.live.com; version=1 |
Wie kann ich jetzt bei IdHTTP Cookies hinzufügen?
Ich benutze Delphi 2010 und habe das mal so versucht:
Delphi-Quelltext 1:
| IdHTTP1.CookieManager.AddCookie('MSPRequ=lt=1292963900&co=1&id=64855','login.live.com'); |
bei Delphi 2010 geht das nicht, ich erhalte folgende fehlermeldung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| Checking project dependencies... Compiling Project1.dproj (Debug configuration) [DCC Error] Unit1.pas(316): E2010 Incompatible types: 'TIdURI' and 'string' [DCC Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas' Failed Elapsed time: 00:00:00.6 |
Wie kann ich bei Delphi 2010 Cookies hinzufügen bei CookieManager?
Danke schonmal.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 21.12.10 23:36
Du kannst einfach den selben CookieManager benutzen. Wenn du das selbe TIdHttp-Objekt für den vorherigen Aufruf benutzt, sollte der CookieManager alles von alleine machen.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Mi 22.12.10 00:26
Danke.
Aber irgendwie bekomme ich immer eine Meldung das Cookies zugelassen werden müssen.
Ich muss ja die Cookies hinzufügen oder?
Ich hab das auch mal so versucht:
Delphi-Quelltext 1: 2:
| u := TIdURI.Create('login.live.com'); IdCookieManager1.AddCookie('MSPRequ=lt=1292963900&co=1&id=64855',u); |
ist das überhaupt so richtig?
Edit: Der HTML-Code, der zurück kommt, lasse ich testweise mal in WebBrowser anzeigen.
Ich hab mal ein Screen von meinem Programm gemacht und im anhang hochgeladen.
Irgendwie akzeptiert er über IdHTTP keine Cookies, wie könnte man das problem jetzt umgehen?
MfG
Einloggen, um Attachments anzusehen!
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Mi 22.12.10 22:18
Es ging die ganze Zeit mit den Cookies, habe ich gerade herausgefunden, nur halt bei mir in WebBrowser sind keine Cookies aktiviert.
Wenn ich den Quellcode in Mozilla Firefox ankucke, der zurück kommt, dann steht da, das ein Password erforderlich ist.
Wie schicke ich ambesten die Logindaten über Post?
Mit TStringList oder IdMultiPartFormData?
Weil irgendwie steht im Quellcode immer das ein Password erfolderlich ist.
Danke schonmal.
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 23.12.10 06:43
Da du nur Strings zum Posten hast, kannst du eine einfache TStringList nehmen.
Ja, wenn du Cookies im Internet Explorer deaktiviert hast, gilt das natürlich auch für TWebBrowser. Wenn das aber daran liegt, muss da beim Aufruf des Codes eine Weiterleitung oder Skriptausführung passieren. Denn sonst würde sich das nicht auswirken.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Do 23.12.10 17:14
Danke Dir.
Mit TStringList funktioniert das garnicht, da steht dann immer das ein Kennwort erforderlich ist und wenn ich TIdMultiPartFormDataStream verwende, dann steht da immer "Die E-Mail-Adresse oder das Kennwort ist falsch. Wiederholen Sie den Vorgang."
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Params.AddFormField('login',edtEmail.Text); Params.AddFormField('passwd',edtPassword.Text); Params.AddFormField('mest',''); Params.AddFormField('type','11'); Params.AddFormField('LoginOptions','2'); Params.AddFormField('NewUser','1'); Params.AddFormField('MEST',''); Params.AddFormField('PPSX',PPSX); Params.AddFormField('PPFT',PPFT); Params.AddFormField('idsbho','1'); Params.AddFormField('PwdPad',''); Params.AddFormField('sso',''); Params.AddFormField('i1','1'); Params.AddFormField('i2','2'); Params.AddFormField('i3','25738'); Params.AddFormField('i4',''); Params.AddFormField('i12','1'); Quelltext := HTTP.Post(PostURL,Params); |
Habe die Email und das Passwort überprüft, ist also kein fehler drin.
Woran könnte der fehler liegen?
MfG
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 23.12.10 17:40
Schau doch einfach einmal im Browser nach, was bei einer normalen Anmeldung alles passiert.
Im IE geht das mit den integrierten Tools, einfach F12 drücken, dann unter Netzwerk auf die Anforderung doppelklicken. Da steht ganz detailliert alles drin, Cookies, Postdaten, alles.
Bei Chrome, Opera und Safari sind wohl auch ähnliche Tools dabei, aber ich glaube die zeigen das nicht oder nicht so detailliert.
Firefox kann das von Hause aus gar nicht, da musst du dir ein Addon wie FireBug oder HttpFox holen. (Leider gibt es kein so gutes Addon fürs Skriptdebugging wie die integrierten von Chrome und IE.)
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: Do 23.12.10 18:03
Die Daten habe ich ja aus Mozilla Firefox mit dem Tool HttpFox ausgelesen.
Ich werde es einfach später nochmal versuchen.
Trotzdem Danke.
MfG
|
|
|