2017-03-06 150 views
0

我想向資源(該資源位於代理之後)發出請求。我也有代理地址和端口。我曾嘗試用NetworkCredentialn沒有成功,CacheCredentials沒有成功。引發WebException是:C#407需要代理驗證

WebResponse response = request.GetResponse(); 

我已經做到了這一點:

ProtocolError
The remote server returned an error: (407) Proxy Authentification Required

我一直在這條線得到錯誤 Package manager in Visual Studio 2015 "407 (Proxy Authentication Required)"

我試圖配置我app.config文件

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.net> 
     <defaultProxy useDefaultCredentials="true" /> 
    </system.net> 
</configuration> 
+0

我認爲這裏的「請求」是一個WebRequest?你是否設置了代理屬性? https://msdn.microsoft.com/zh-cn/library/system.net.webrequest.defaultwebproxy(v=vs.110).aspx或https://msdn.microsoft.com/zh-cn/library/system .net.webrequest.proxy(v = vs.110).aspx在您傳遞的代理對象中,您可以設置用於使用代理進行身份驗證的憑據。 – ADyson

回答

2

從我們的企業網絡,我們通常使用這種鱈魚E:

 WebProxy proxy = new WebProxy("http://your.proxy.server:8080", true); 
     proxy.Credentials = new NetworkCredential("user", "password"); 
     WebRequest.DefaultWebProxy = proxy; 

的想法是你把這個代碼在某處你的程序(或應用開始,如果你在IIS)的起點,然後每一個請求將採取默認的代理配置。

web.config中無需更改。 AFAICT,在web.config中無法設置憑據。

根據我的經驗,它也適用於Web服務和WCF通信。

+0

非常感謝您的回覆,但我不想使用硬編碼的登錄名和密碼,而是想使用用戶的憑據。 – user2983359

+0

顯然,您可以從任何地方讀取此設置(例如,在web.config中設置appsetting)。但問題是:代理設置對你有用嗎? –

+0

是的代理爲我工作。當我從網絡瀏覽器訪問同一頁面時,我根本沒有任何問題。唯一的問題是當我嘗試從我的Win表單訪問該頁面時。 – user2983359

相關問題