Looks like it's not possible with current THttpCli: {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} function THttpCli.GetNTLMMessage1(const ForProxy: Boolean): String; begin { Result := FNTLM.GetMessage1(FNTLMHost, FNTLMDomain); } { it is very common not to send domain and workstation strings on } { the first message } if ForProxy then Result := 'Proxy-Authorization: NTLM ' + NtlmGetMessage1('', '') else Result := 'Authorization: NTLM ' + NtlmGetMessage1('', ''); end;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} function THttpCli.GetNTLMMessage3(const HttpMethod: String; const ForProxy: Boolean): String; var Hostname : String; begin { get local hostname } try Hostname := String(LocalHostName); except Hostname := ''; end; { domain is not used } { hostname is the local hostname } if ForProxy then Result := 'Proxy-Authorization: NTLM ' + NtlmGetMessage3('', Hostname, FProxyUsername, FProxyPassword, FProxyNTLMMsg2Info.Challenge) else Result := 'Authorization: NTLM ' + NtlmGetMessage3('', Hostname, { FNTLMUsercode, FNTLMPassword, } FCurrUsername, FCurrPassword, FNTLMMsg2Info.Challenge); {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} BTW: In the meanwhile (2007) MS published their NTLM specs. they have been updated yesterday: "NT LAN Manager (NTLM) Authentication Protocol Specification": http://msdn.microsoft.com/en-us/library/cc236621 So if anybody wants to improve ICS's implementation it's much easier now. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be