是否有人通過使用Indy(10.XX)組件通過使用NTLM身份驗證的Squid代理服務器設置成功連接到https://download.dot?使用帶Indy組件的NTLM身份驗證連接到Squid服務器
我可以成功連接到http位置,但是使用https Indy會返回EAbort錯誤。
此外,如果我使用FreeProxy作爲代理服務器(使用NTLM身份驗證),則可以同樣訪問http/https。但是Squid NTLM + https不起作用?有人得到這個工作?
感謝 雷爾
是否有人通過使用Indy(10.XX)組件通過使用NTLM身份驗證的Squid代理服務器設置成功連接到https://download.dot?使用帶Indy組件的NTLM身份驗證連接到Squid服務器
我可以成功連接到http位置,但是使用https Indy會返回EAbort錯誤。
此外,如果我使用FreeProxy作爲代理服務器(使用NTLM身份驗證),則可以同樣訪問http/https。但是Squid NTLM + https不起作用?有人得到這個工作?
感謝 雷爾
我在這裏
1 - 首先,確保你已經更新Indy的來源。
2 - 從這裏Indy SLL DLLS下載SSL的dll,把他們在您的應用程序輸出
3 - 確保您有連接到TidHttp
IOHandler
屬性與後續的性能TIdSSLIOHandlerSocketOpenSSL
配置:
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 - 包括這些單元T Ø您的使用條款:
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一起使用。如果你想要我,我可以發送給你我的組件的完整源代碼。我不會在這裏發佈它,因爲它是用葡萄牙語寫的(除非有人說它可以發佈)。
你可以在這裏發佈代碼嗎?我需要使用Indy 10進行身份驗證(不需要SSL)。我堅持了兩天。 – CyprUS 2013-04-26 07:05:29
我們在Indy論壇上討論了這個討論。您正在獲得EAbort,因爲Squid服務器並不總是向Indy的HTTP請求發送身份驗證質詢。 – 2010-05-31 18:43:59
我有一個工作得很好的代碼。我花了一段時間才明白爲什麼Indy不能處理對Squid的請求。但是我現在沒有資源,明天我會回到這個帖子併發佈一個樣本。 – 2011-03-17 02:24:22