HttpWebRequest不使用默认IE代理凭据
问题描述:
在Windows 7上,我在Internet选项设置中放置了一个代理。 该代理需要在IE中询问的身份验证,然后放入(并保存)凭据,然后才能访问网络。但是,当我使用此代码时,我得到WebException:(407)代理身份验证必需。HttpWebRequest不使用默认IE代理凭据
var request = WebRequest.Create(@"https://google.com");
var res = request.GetResponse();
我看到了WebRequest的越来越默认代理URI和端口调试,但由于某种原因,它不会做认证。既不是从保存的Windows凭据中,也不是通过弹出窗口询问凭据。
我也试图与此代码隐式设置,并得到了相同的407:
var systemProxy = WebRequest.GetSystemWebProxy();
var systemProxyUri = systemProxy.GetProxy(new Uri("http://www.google.com"));
var sysWebProxy = new WebProxy(systemProxyUri) { UseDefaultCredentials = true };
WebRequest.DefaultWebProxy = sysWebProxy;
我怎么错过? 如何定义WebRequest以使用默认系统的代理和保存的凭证?或者至少让窗户要求凭证?
我无法使用app.config,也不想将凭据硬编码。
答
不,它不!
,如果你编写一个PROGRAMM,显示弹出,并要求提供信用凭证
IWebProxy proxy = WebRequest.DefaultWebProxy;
proxy.Credentials = new NetworkCredential(proxyLogin.Text, proxyPassword.Password);