【问题标题】:C# 407 Proxy Authentication RequiredC# 407 需要代理身份验证
【发布时间】:2017-03-06 13:04:38
【问题描述】:

我想向资源发出请求(该资源位于代理后面)。我也有代理地址和端口。我试过NetworkCredentialn没有成功,CacheCredentials没有成功。 WebException 是:

协议错误
远程服务器返回错误:(407) Proxy Authentification Required

我总是在这一行出错:

WebResponse response = request.GetResponse();

我已经这样做了: 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>

【问题讨论】:

标签: c# c#-4.0


【解决方案1】:

在我们的公司网络中,我们通常使用以下代码:

        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 通信。

【讨论】:

  • 非常感谢您的回复,但我不想使用硬编码的登录名和密码,而是想使用用户的凭据。
  • 显然你可以从任何你想要的地方读取这个设置(例如 web.config 中的 appsettings)。但问题是:代理设置对你有用吗?
  • 是的,代理对我有用。当我从网络浏览器访问同一页面时,我完全没有问题。我唯一遇到的问题是当我尝试从我的 Win 表单访问该页面时。
  • 我要问的是:如果此代码适用于硬编码值,那么您就可以确定要将它们存储在哪里。但问题是:如果您将此代码与硬编码值一起使用,它是否有效?
  • 让我试试这个,我会回来的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多