Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 使用NTLM auth和Indy组件连接到Squid服务器_Delphi_Indy_Indy10 - Fatal编程技术网

Delphi 使用NTLM auth和Indy组件连接到Squid服务器

Delphi 使用NTLM auth和Indy组件连接到Squid服务器,delphi,indy,indy10,Delphi,Indy,Indy10,是否有人使用Indy(10.XX)组件通过Squid代理服务器设置和NTLM身份验证成功连接到https位置 我可以成功连接到http位置,但是使用https Indy会返回EAPort错误 此外,如果我使用FreeProxy作为代理服务器(使用NTLM身份验证),我也可以同样好地访问http/https。但是Squid NTLM+https不起作用?有人用这个吗 谢谢 雷尔我来了 1-首先,确保您已更新indy的来源 2-从此处下载SSL DLL,并将其放入应用程序输出中 3-确保已将TIdS

是否有人使用Indy(10.XX)组件通过Squid代理服务器设置和NTLM身份验证成功连接到https位置

我可以成功连接到http位置,但是使用https Indy会返回EAPort错误

此外,如果我使用FreeProxy作为代理服务器(使用NTLM身份验证),我也可以同样好地访问http/https。但是Squid NTLM+https不起作用?有人用这个吗

谢谢 雷尔

我来了

1-首先,确保您已更新indy的来源

2-从此处下载SSL DLL,并将其放入应用程序输出中

3-确保已将
TIdSSLIOHandlerSocketOpenSSL
连接到
TidHttp
IOHandler
属性,并配置了以下属性:

SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmUnassigned;
OnVerifyPeer := SSLIOHandlerVerifyPeer;
SSLOptions.VerifyMode := [sslvrfPeer];
SSLOptions.VerifyDepth := 2;
4-编写此事件:

function SSLIOHandlerVerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth, AError:    Integer): Boolean;
begin
  Result := True;
end;
5-在使用条款中包括这些装置:

IdAuthentication, IdAuthenticationDigest, IdAuthenticationNTLM
6-将
TidHttp.OnProxyAuthorization
事件设置为:

procedure IdHTTPProxyAuthorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean);
begin
  Handled := False;
end;
7-设置这些属性:

IndyHttpClient.HTTPOptions := IndyHttpClient.HTTPOptions + [hoKeepOrigProtocol] + [hoInProcessAuth];
IndyHttpClient.ProtocolVersion := pv1_1;
IndyHttpClient.ProxyParams.ProxyServer := 'you proxy address here'
IndyHttpClient.ProxyParams.ProxyPort := 8080;
IndyHttpClient.ProxyParams.ProxyUsername := 'your proxy username here';
IndyHttpClient.ProxyParams.ProxyPassword := 'your proxy psw here';
现在你可以走了。此代码也适用于Microsoft ISA Server。如果您需要,我可以向您发送我的组件的完整源代码。我不会在这里发布,因为它是用葡萄牙语写的(除非有人说可以发布)。

我在这里

1-首先,确保您已更新indy的来源

2-从此处下载SSL DLL,并将其放入应用程序输出中

3-确保已将
TIdSSLIOHandlerSocketOpenSSL
连接到
TidHttp
IOHandler
属性,并配置了以下属性:

SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmUnassigned;
OnVerifyPeer := SSLIOHandlerVerifyPeer;
SSLOptions.VerifyMode := [sslvrfPeer];
SSLOptions.VerifyDepth := 2;
4-编写此事件:

function SSLIOHandlerVerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth, AError:    Integer): Boolean;
begin
  Result := True;
end;
5-在使用条款中包括这些装置:

IdAuthentication, IdAuthenticationDigest, IdAuthenticationNTLM
6-将
TidHttp.OnProxyAuthorization
事件设置为:

procedure IdHTTPProxyAuthorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean);
begin
  Handled := False;
end;
7-设置这些属性:

IndyHttpClient.HTTPOptions := IndyHttpClient.HTTPOptions + [hoKeepOrigProtocol] + [hoInProcessAuth];
IndyHttpClient.ProtocolVersion := pv1_1;
IndyHttpClient.ProxyParams.ProxyServer := 'you proxy address here'
IndyHttpClient.ProxyParams.ProxyPort := 8080;
IndyHttpClient.ProxyParams.ProxyUsername := 'your proxy username here';
IndyHttpClient.ProxyParams.ProxyPassword := 'your proxy psw here';

现在你可以走了。此代码也适用于Microsoft ISA Server。如果您需要,我可以向您发送我的组件的完整源代码。我不会在这里发布,因为它是用葡萄牙语写的(除非有人说可以发布)。

我们在印地论坛上讨论了这一问题。您获得了EAPort,因为Squid服务器并不总是向Indy的HTTP请求发回身份验证质询。我花了一段时间才明白为什么印第不能处理对Squid的请求。但是我现在还没有消息来源,我明天会回到这篇文章并发布一个样本。我们已经在印地论坛上讨论了这个问题。您获得了EAPort,因为Squid服务器并不总是向Indy的HTTP请求发回身份验证质询。我花了一段时间才明白为什么印第不能处理对Squid的请求。但是我现在没有源代码,我明天会回到这篇文章并发布一个示例。你能在这里发布代码吗?我需要通过Indy 10进行身份验证(无需SSL)。我被困在里面两天了。你能把代码贴在这里吗?我需要通过Indy 10进行身份验证(无需SSL)。我被困在里面两天了。