Autor |
Beitrag |
ChrisCross
Beiträge: 124
Erhaltene Danke: 12
Windows 10 64 bit
Delphi XE6 Starter
|
Verfasst: Mo 03.02.14 15:04
Hallo,
ich würde mich gerne auf SkyDrive/ OneDrive einloggen. Ich habe es mit folgenden Code versucht. Leider klappt die Anmeldung nicht. Ich finde meinen Fehler nicht.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TFormOneDrive.btn1Click(Sender: TObject); var lParams: TStringList; begin try lParams := TStringList.Create(); lParams.Add('login=' + edtname.Text); lParams.Add('passwd=' + edtkennwort.Text); lParams.Add('submit=Anmelden'); IdHTTP1.Post('http://www.onedrive.live.com', lParams); IdHTTP1.Post('https://skydrive.live.com/?mkt=de-DE',lParams); Application.MessageBox('Sie wurden erfolgreich eingeloggt.', 'Login OneDrive', MB_ICONINFORMATION or MB_OK); except Application.MessageBox('Sie konnten nicht eingeloggt werden.', 'Login OneDrive', MB_ICONWARNING or MB_OK); end; end; |
_________________ Christoph
Unser Mathelehrer: Das ist der letzte Matheblock in dieser Woche … Er hat aber gerade erst angefangen. Was die gute und was die schlechte Nachricht ist, kann sich jeder selbst aussuchen.
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 03.02.14 15:07
Hast du denn einen Cookiemanager zugewiesen? Denn ohne Cookies kannst du nach dem Login auch nichts damit anfangen.
Und wie hast du Weiterleitungen eingestellt? HandleRedirects wirst du vermute ich setzen müssen, da beim Login soweit ich das in Erinnerung habe welche benutzt werden.
|
|
ChrisCross
Beiträge: 124
Erhaltene Danke: 12
Windows 10 64 bit
Delphi XE6 Starter
|
Verfasst: Mo 03.02.14 15:44
Einen Cookiemanager habe ich zugewiesen. Den Code habe ich eigentlich in einem anderen Programm genutzt. Dort hat das so funktioniert und man wurde automatisch weitergeleitet, also die erste Seite, war die Seite auf der man die Daten eingegeben hat und die zweite die Seite wo man hin wollte. Wenn jetzt ein Except ausgelöst wurde, konnte die Seite nicht aufgerufen werden und die eingegebenen Nutzerdaten waren somit die falschen Nutzerdaten.
Aber ich weiß nicht, ob das jetzt auch so funktioniert, oder was ich anders machen muss, da ich mich mit idHttp nicht so gut auskenne.
Zitat: | HandleRedirects wirst du vermute ich setzen müssen, da beim Login soweit ich das in Erinnerung habe welche benutzt werden. |
Wie mache ich das?
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 03.02.14 16:58
ChrisCross hat folgendes geschrieben : | Wie mache ich das? |
Im Objektinspektor auf True setzen...
Außerdem ist der größte Fehler an dem Code, dass du die Exceptioninformationen ignorierst (also nicht mit on E: Exception do abfängst und auswertest). Da steht sicher mehr drin über den Fehler...
Für diesen Beitrag haben gedankt: ChrisCross
|
|
ChrisCross
Beiträge: 124
Erhaltene Danke: 12
Windows 10 64 bit
Delphi XE6 Starter
|
Verfasst: Mo 03.02.14 19:00
Ich erhalte folgende Fehlermeldung:
Einloggen, um Attachments anzusehen!
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 03.02.14 19:04
Ok, die Fehlermeldung heißt einfach, dass du keinen IOHandler für SSL eingeklinkt hast. Das ist eine https Adresse. Indy behandelt das nicht selbst. Du musst also z.B. für OpenSSL einen TIdSSLIOHandlerSocketOpenSSL als IOHandler zuweisen und die OpenSSL-DLLs herunterladen und zu deinem Programm ins Verzeichnis legen.
Für diesen Beitrag haben gedankt: ChrisCross
|
|
ChrisCross
Beiträge: 124
Erhaltene Danke: 12
Windows 10 64 bit
Delphi XE6 Starter
|
Verfasst: Di 04.02.14 13:14
Habe ich gemacht. Jetzt erscheint folgende Fehlermeldung:
Wenn ich das richtig verstehe, findet er die Seite nicht. Die Adressen sind aber richtig.
Einloggen, um Attachments anzusehen!
|
|
UGrohne
Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Di 04.02.14 14:08
ChrisCross hat folgendes geschrieben : | Einen Cookiemanager habe ich zugewiesen. Den Code habe ich eigentlich in einem anderen Programm genutzt. |
Du hast genau diesen Code verwendet, um in einem anderen Programm auf SkyDrive zuzugreifen? Ganz sicher?
Denn ich kann mir nicht vorstellen, dass das funktioniert. Der SkyDrive-Login wird vom Live-Login (Federated Authentication) durchgeführt, auf einem ganz anderen Server. Und die Parameternamen stimmen da auch nicht, mal ganz davon zu schweigen, dass das so gar nicht funktionieren kann.
Hier gibt es Infos dazu, wie man von eigenen Programmen auf das SkyDrive zugreift: msdn.microsoft.com/e...s/apps/dn263258.aspx
Für diesen Beitrag haben gedankt: ChrisCross
|
|