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