当前位置:  开发笔记 > 编程语言 > 正文

从WCF客户端连接到WSE 3.0 Web服务

如何解决《从WCF客户端连接到WSE3.0Web服务》经验,为你挑选了1个好方法。

我很难从WCF客户端连接到第三方WSE 3.0 Web服务.我已经实现了这个知识库文章中指出的自定义绑定类:

http://msdn.microsoft.com/en-us/library/ms734745.aspx

该问题似乎与Web服务使用的安全断言有关 - UsernameOverTransport.

当我尝试调用方法时,我得到以下异常:

System.InvalidOperationException:'WseHttpBinding'.'[namespace]'绑定'MyWebServiceSoap'.'[namespace]'契约配置了一种需要传输级别完整性和机密性的身份验证模式.但运输不能提供完整性和保密性.

它需要用户名,密码和CN号.在供应商提供给我们的示例代码中,这些凭据捆绑在Microsoft.Web.Services3.Security.Tokens.UsernameToken中.以下是供应商提供的示例:

MyWebServiceWse proxy = new MyWebServiceWse();

UsernameToken token = new UsernameToken("Username", "password", PasswordOption.SendPlainText);

token.Id = "";

proxy.SetClientCredential(token);

proxy.SetPolicy(new Policy(new UsernameOverTransportAssertion(), new RequireActionHeaderAssertion()));

MyObject mo = proxy.MyMethod();

这适用于安装了WSE 3.0的2.0应用程序.以下是我的WCF客户端的代码片段:

EndpointAddress address = new EndpointAddress(new Uri(""));

WseHttpBinding binding = new WseHttpBinding(); // This is the custom binding I created per the MS KB article

binding.SecurityAssertion = WseSecurityAssertion.UsernameOverTransport;
binding.EstablishSecurityContext = false;

// Not sure about the value of either of these next two
binding.RequireDerivedKeys = true;
binding.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;

MembershipServiceSoapClient proxy = new MembershipServiceSoapClient(binding, address);

// This is where I believe the problem lies – I can’t seem to properly setup the security credentials the web service is expecting 

proxy.ClientCredentials.UserName.UserName = "username";
proxy.ClientCredentials.UserName.Password = "pwd";
// How do I supply the CN number?                      

MyObject mo = proxy.MyMethod(); // this throws the exception

我在网上搜索这个问题的答案.一些消息来源让我接近(如MS KB文章),但我似乎无法克服困难.有人可以帮我吗?



1> 小智..:

我在以下绑定配置的类似情况下取得了成功:


   
      
         
            
         
         
         
     
  

希望它也适合你.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有