在Windows 7上,我在Internet选项设置中放置了代理。 此代理需要在IE中询问的身份验证,然后我放置(并保存)凭据,然后我就可以访问Web。但是,当我使用此代码时,我得到WebException:(407)需要代理身份验证。
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并且不想将凭据硬编码。
答案 0 :(得分:0)
不,不是!
如果您编写程序代码,则显示弹出窗口并要求提供凭据
IWebProxy proxy = WebRequest.DefaultWebProxy;
proxy.Credentials = new NetworkCredential(proxyLogin.Text, proxyPassword.Password);