【问题标题】:Proxy server authentication for WCF serviceWCF 服务的代理服务器身份验证
【发布时间】:2009-06-20 22:17:48
【问题描述】:

我需要使用 WCF 服务,但我在代理服务器后面,并且此代理服务器需要用户名和密码。

我找不到设置它的方法,如果它是一个 Web 服务,我可以做类似的事情

ws.Proxy = myProxyServer;

如何使用 WCF 服务做到这一点?

【问题讨论】:

  • 如果能接受答案就好了,谢谢。

标签: wcf proxy


【解决方案1】:

在 WCF 绑定配置中,使用 useDefaultWebProxy 属性使 WCF 使用 windows 默认代理(可以从 IE 网络配置中设置):

<bindings>
<basicHttpBinding>
<binding name="ESBWSSL" ...everything...  useDefaultWebProxy="true">

然后在代码中,在使用连接之前,执行以下操作:

WebProxy wproxy = new WebProxy("new proxy",true);
wproxy.Credentials = new NetworkCredential("user", "pass");

在您执行调用之前,使用您的 webrequest 对象:

WebRequest.DefaultWebProxy = wproxy;

我还没有测试过代码,但我相信这应该可以工作。

【讨论】:

  • 用户名和密码呢?
  • 嗨,汉斯,我刚刚添加了额外的信息。你能试试吗?我没用过,但是应该可以的。
  • @John - 实际上 - 是的!我自己也很惊讶 - 但请在此处查看此链接:blogs.msdn.com/stcheng/archive/2008/12/03/…
  • 其实需要设置useDefaultWebProxy="false"才能使用自己配置的代理
  • 谢谢谢谢谢谢。还有什么比网络代理服务器更卑鄙的吗?上面的解决方案效果很好。
【解决方案2】:

注意根据评论替换了之前的答案

实际上还有另一个 stackoverflow 答案,涵盖了在代理上设置凭据。

Is it possible to specify proxy credentials in your web.config?

【讨论】:

  • 我认为他希望能够为代理服务器设置身份验证。此外,它可能有助于显示代码将如何设置它们:例如,在您的示例中“客户端”来自哪里?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
相关资源
最近更新 更多