Zitat:
Delphi-Quellcode:
procedure TFormMain.IdHTTPAuthorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean);
begin
Authentication.Username := FUsername;
Authentication.Password := FPassword;
MemoDebug.Lines.Append('onAuthorization: ' + Authentication.Authentication);
// erhalte dies als Ausgabe
// onAuthorization: NTLM TlRMTVNTUAAB7AAAB7IAAAgACAAgAA7ACgAKACgAAABET00wOTgxMERBREEwOTgxMDM=
Handled := true;
end;
Kann jemand erkennen was ich falsche mache?
Hat jemand evtl. ein funktionierendes Beispiel?
Ich komm da nochmal auf dein Ursprungsfrage zurück.
Diesen String den du da bekommst "NTLM TlRMTVNTUAAB7AAAB7IAAAgACAAgAA7ACgAKACgAAABET00wOT gxMERBREEwOTgxMDM=" ist eine Challenge. Diese musst du nur auseinander nehmen und mit dem Benutzer/Passwort eine Antwort berechnen. Diese schickst du dann an den Server zurück.
Das ist etwas im Link erklärt den ich zuerst geschickt hatte.
NTLM ist ein Challenge/Response verfahren, welche nicht das Passwort an den Server überträgt.
Die Felder Authentication.Username und Authentication.Pass greifen hier nicht, da
Indy an dieser Stelle nicht mit diesem Verfahren (NTLM) umgehen kann.
Du kannst das etwas mit BASIC und DIGEST Authentifizierung vergleichen.