我有一個小實用程序,它是一個SOAP WebService客戶端。 SOAP代理從WSDL生成。它工作正常。如何使用SQUID代理驗證.NET2 Webservice
現在客戶想要使用SQUID代理,但拒絕認證我的SOAP客戶端。
我已經嘗試:
MyWebservice ws = new MyWebservice();
// set URL etc.
// login for the actual service, this part works
HeaderLogin hl = new HeaderLogin();
hl.username = svcLogin;
hl.password = svcPassword;
ws.HeaderLoginValue = hl;
// setting up the Proxy of the Proxy
//ws.Proxy = System.Net.WebRequest.GetSystemWebProxy();
ws.Proxy = System.Net.WebRequest.DefaultWebProxy;
//ws.Proxy.Credentials = CredentialCache.DefaultCredentials;
ws.Proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword, proxyDomain);
但我不斷收到HTTP 407錯誤:要求代理身份驗證。
SQUID(squid/2.7.STABLE4)設置爲使用NTLM和AD進行身份驗證。這似乎工作正常:有其他WebService客戶端通過代理服務器正常。
我沒有直接訪問網站,但只有一些日誌文件來看。最顯着的是我可以在PCAP(Wireshark)文件中看到的東西。當我在PCAP創建以用戶名=「漢克」一個的NetworkCredential,域名=「TEST」它顯示爲
... HTTP CONNECT someurl:443 HTTP/1.1 , NTLMSSP_AUTH, User: T\H
當我看PCAP爲工作服務
... HTTP CONNECT someurl:443 HTTP/1.0 , NTLMSSP_AUTH, User: TEST\Henk
而且在SQUID acces.log所有嘗試被示出爲:
... 0 192.168.15.95 TCP_DENIED/407 1759 CONNECT someurl:443 - NONE/- text/html
... 32 192.168.15.95 TCP_DENIED/407 2055 CONNECT someurl:443 - NONE/- text/html
... 31 192.168.15.95 TCP_DENIED/407 1759 CONNECT someurl:443 - NONE/- text/html
混凝土問題:
- .NET2 SOAP和Squid的任何已知問題?
- 是TEST \ Henk顯示T \ H顯着嗎?
- 其他我應該找的東西?
隨意的事情來檢查:哪裏PROXYUSER,對proxyPassword和proxyDomain行是從哪裏來的?在達到這一點之前是否有可能意外地錯誤? 'proxyUser = form.Fields [「ProxyUser」] [0]'而不是'proxyUser = form.Fields [「ProxyUser」]'也許? – Stobor 2010-07-22 07:44:47
@Stobor:好點,但我會稱之爲'系統',而不是'隨機'。全部檢查並重新檢查。 – 2010-07-22 08:30:39
@亨克 - 你有沒有解決這個問題?儘管所有瀏覽器都使用代理進行身份驗證,但WebClient在禁用身份驗證時仍然有效,但我仍然使用WebClient拒絕使用Squid代理進行身份驗證。 – 2014-02-28 11:33:32