我有一个小实用程序,它是一个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