2011-06-12 61 views
0

我需要使用具有以下要求的web服务:WCF - 使用Web服务(https/ssl/mtom/user/password) - 如何配置客户端?

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

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

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

感谢

回答

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编码中的凭证。

+0

这样做,用户/密码将在肥皂头? – KindaNewbie 2011-06-12 22:19:19

+0

由绑定定义。如果您使用HTTPS + SOAP头添加了对WCF服务的服务引用以进行身份​​验证,则应该已经为您定义了它。您可以检查配置中的绑定是否使用'' – 2011-06-12 22:33:33

1

通常当你使用Web服务,您不需要更改绑定。

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

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

请参阅this文章。

相关问题