WCF - 消费Web服务(https / ssl / mtom / user / password) - 如何配置客户端?

时间:2011-06-12 18:16:30

标签: wcf authentication wcf-binding wcf-security mtom

我需要使用具有以下要求的Web服务:

  • https / ssl
  • MTOM
  • 需要在SOAP标头
  • 中指定用户/密码
  • 1(可能很大)二进制文件作为有效负载

我无法控制此Web服务并需要使用它。由于我是WCF的新手,我需要一些基本的帮助。我的问题是:

  1. 当我在VS2010中添加服务引用时,我在配置中得到了一个basichttpbinding。我想我必须使用wshttpbinding,对吗?我在哪里/如何更改/配置它?直接在配置?
  2. 如何配置我的客户端在soap标头中指定用户/密码?
  3. 如何“附加”二进制文件?
  4. 由于

3 个答案:

答案 0 :(得分:1)

通常在使用Web服务时,您无需更改绑定。

您可能需要指定客户端凭据。

   Service1Client service = new Service1Client();
   service.ClientCredentials.UserName.UserName = "user";
   service.ClientCredentials.UserName.Password = "pass";

请参阅this文章。

答案 1 :(得分:1)

如果添加服务引用,并且您没有在配置文件中收到任何错误,警告或任何注释部分,那么您已经拥有了所需的内容。只需使用您获得的代码即可。该引用将为您创建客户端代理,这将具有将二进制数据传递到服务器所需的方法。代理还允许设置客户端凭据:

var proxy = new ServiceContractNameClient();
proxy.ClientCredentials.UserName.Name = "userName";
proxy.ClientCredentials.UserName.Password = "pwd";
var result = proxy.SendSomeVeryLargeData(new SomeDataContract() { Data = yourData });

BasicHttpBinding支持SOAP头和MTOM编码中的凭据。

答案 2 :(得分:0)

我找到了一篇关于如何使用WCF配置MTOM客户端的好文章。这是一个非常基础的教程。我希望它有所帮助。

http://mstecharchitect.blogspot.com/2009/01/wcf-with-mtom-message-encoding.html