2011-04-29 91 views
6

我试图使用我们的提供程序从我们的C#应用​​程序使用Java编写的WebService。当它的时间来沟通,我得到这个:如何将安全头添加到SOAP消息?

WSDoAllReceiver:传入消息不包含必需的安全头

从昨天开始我试图找出如何安全头添加到SOAP消息。

是的,我读了这个(Clueless about how to create SOAP <wsse:Security> header),但它没有奏效。

我环顾四周,这似乎是一个颇为疑问的问题。我想知道我是否可以在这里得到一些帮助,一些指针,一些代码,让我开始。

回答

13

我真的设法通过使用WSE来实现这一点。有趣的是,提供者的Web服务不适用于WSE 3.0,但他们使用WSE 2.0。下面是步骤

  • 获取WSE 2.0
  • Web引用添加到项目
  • 在Web引用代理实现:

通过

更换

public partial class UserWS : System.Web.Services.Protocols.SoapHttpClientProtocol 

public partial class UserWS : Microsoft.Web.Services2.WebServicesClientProtocol 
  • 之前调用Web服务:

设置认证信息

UsernameToken token = new UsernameToken("user", "pwd", PasswordOption.SendPlainText); 
yourProxy.RequestSoapContext.Security.Tokens.Add(token); 

就是这样!仅供参考,提供者是Blackboard实例。

+0

所以不可能使用WCF使用Blackboard Web服务? – 2011-11-22 05:01:44

+0

我从来没有尝试过WCF ... – 2011-11-22 18:38:52

+0

@AdrianCarneiro - Sooper真棒! – GuruC 2012-11-26 06:56:28