2017-03-06 106 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

相关问题