Einzelnen Beitrag anzeigen

MathiasE

Registriert seit: 28. Okt 2013
5 Beiträge
 
#13

AW: Einloggen mit idhttp auf https-Server

  Alt 8. Nov 2013, 13:02
Hallo!

Ja, der Key steht auf der Webseite. Danke für das Beispiel.
Jetzt habe ich noch eine Frage (ja, die sind vielleicht einfach - und ja, ich kenne mich damit leider schlecht aus):
- Wie verschlüssele ich jetzt das Passwort mit dem Key? irgendwie habe ich gelesen, dass es da mehrere arten gibt....

Habe das Beispiel von Sougetsu (von oben) angepasst und hoffe, dass nach korrekter Verschlüsselung des Passworts der Login funktionieren sollte
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
  PostDataStream : TStringStream;
  MYIOHandler: TIdSSLIOHandlerSocket;
  MyMultiPartFormDataStream: TIdMultiPartFormDataStream;
begin
  //Voraussetzungen für SSL erzeugen
  MYIOHandler:=TIdSSLIOHandlerSocket.Create(nil);
  MYIOHandler.SSLOptions.Method:=sslvSSLv23; // Method anpassen an die welche vom Server unterstützt wird.
  MYIOHandler.SSLOptions.Mode:=sslmUnassigned; //Akzeptiert alle Zertifikate egal ob signiert oder nicht, sollte behandelt werden damit Zertifikate auf Gültigkeit etc. geprüft wird.
  MyMultiPartFormDataStream:=TIdMultiPartFormDataStream.Create; //Hier einen Stream erzeugen der nachher die Formulardaten enthält.
  MyMultiPartFormDataStream.AddFormField('user',username); //Username
[B] MyMultiPartFormDataStream.AddFormField('pass',RSApassword); //RSA verschlüsseltes Passwort
[/B] MyMultiPartFormDataStream.AddFormField('submit','Anmelden'); //Falls geprüft wird ob der reguläre Button da war
  MyMultiPartFormDataStream.AddFormField('logintype','login'); //Auch selbsterklärend
  MyMultiPartFormDataStream.AddFormField('pid','28110'); //[B]die pid bleibt immer gleich[/B]
  MyMultiPartFormDataStream.AddFormField('redirect_url',''); //Auch unbekannt wofür das ist
  MyMultiPartFormDataStream.AddFormField('tx_felogin_pi1[noredirect]','0'); //Hier auch
[B] MyMultiPartFormDataStream.AddFormField('n',RSAkey); //der Schlüssel aus dem html
[/B] MyMultiPartFormDataStream.AddFormField('e','10001'); //[B]Der Wert bleibt immer gleich[/B]

  IdHTTP1 := TIdHTTP.Create(nil);
  IdHTTP1.IOHandler:=MYIOHandler; // Der Kompo das SSL mitgeben damit es eine SSL Verbindung aufbauen kann.
  IdHTTP1.AllowCookies:=true; //Standardeinstellungen vornehmen wie Cookies und Redirects.
  IdHTTP1.HandleRedirects:=true;
  PostDataStream := TStringStream.Create('');
  try
  //Connect
      IdHTTP1.Post(URL, MyMultiPartFormDataStream, PostDataStream);
      Memo1.Text := PostDataStream.DataString;
  finally
    MyMultiPartFormDataStream.Free;
    PostDataStream.Free;
    MYIOHandler.Free;
  end;
end;
Vielen Dank für die Hilfe bisher!
  Mit Zitat antworten Zitat