Autor Beitrag
ChrisCross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 124
Erhaltene Danke: 12

Windows 10 64 bit
Delphi XE6 Starter
BeitragVerfasst: 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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 124
Erhaltene Danke: 12

Windows 10 64 bit
Delphi XE6 Starter
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.02.14 16:58 
user profile iconChrisCross hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 124
Erhaltene Danke: 12

Windows 10 64 bit
Delphi XE6 Starter
BeitragVerfasst: Mo 03.02.14 19:00 
Ich erhalte folgende Fehlermeldung:

Unbenannt
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.02.14 19:04 
:autsch:

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 124
Erhaltene Danke: 12

Windows 10 64 bit
Delphi XE6 Starter
BeitragVerfasst: Di 04.02.14 13:14 
Habe ich gemacht. Jetzt erscheint folgende Fehlermeldung:

Bild

Wenn ich das richtig verstehe, findet er die Seite nicht. Die Adressen sind aber richtig.
Einloggen, um Attachments anzusehen!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 04.02.14 14:08 
user profile iconChrisCross hat folgendes geschrieben Zum zitierten Posting springen:
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