2017-03-16 137 views
0

在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,也不想將憑據硬編碼。

回答

0

不,它不!

,如果你編寫一個PROGRAMM,顯示彈出,並要求提供信用憑證

IWebProxy proxy = WebRequest.DefaultWebProxy; 
     proxy.Credentials = new NetworkCredential(proxyLogin.Text, proxyPassword.Password);