Moin,
theoretisch ist es einfach ein post zu basteln.
bei der login source könnte dein delphi code evtl. so aussehen:
Code nicht getestet, alles auf eigene Gefahr.
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
PostDataStream : TStringStream;
MYIOHandler: TIdSSLIOHandlerSocketOpenSSL;
MyMultiPartFormDataStream:TIdMultipartFormDataStream;
begin
//Voraussetzungen für SSL erzeugen
MYIOHandler:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
MYIOHandler.SSLOptions.Method:=sslvTLS1_2; // 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); //Das sollte klar sein
MyMultiPartFormDataStream.AddFormField('pass',password); //Das auch
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'); //Gute Frage, bleibt die pid immer gleich oder ändert sie sich nach jedem Request?
MyMultiPartFormDataStream.AddFormField('redirect_url',''); //Auch unbekannt wofür das ist
MyMultiPartFormDataStream.AddFormField('tx_felogin_pi1[noredirect]','0'); //Hier auch
MyMultiPartFormDataStream.AddFormField('e','10001'); //Hier auch, ändern sich die Werte mal?
IdHTTP1.Create(nil);
IdHTTP1.IOHandler:=MYIOHandler; // Der Kompo das SSL mitgeben damit es eine SSL Verbindung aufbauen kann.
IdHTTP1.AllowCokies:=true; //Standardeinstellungen vornehmen wie Cookies und Redirects.
IdHTTP1.HandleRedirect:=true;
PostDataStream := TStringStream.Create('');
try
//Connect
IdHTTP1.Post('https://kb.zumtobel.com/de.html', MyMultiPartFormDataStream, PostDataStream);
Memo1.Text := PostDataStream.DataString;
end;
finally
MyMultiPartFormDataStream.Free;
PostDataStream.Free;
MYIOHandler.Free;
end;
end;