如何将安全头添加到SOAP消息?

我正在尝试使用我们的提供商从C#App中使用Java编写的WebService。 什么时候沟通,我得到这个:

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

从昨天开始,我正在尝试找出如何将安全头添加到SOAP消息中。

是的,我读过这篇文章( 对如何创建SOAP 标题无能为力 )但它没有用。

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

我实际上通过使用WSE实现了这一目标。 有趣的是,提供商的Web服务不适用于WSE 3.0,但他们使用WSE 2.0。 这是步骤

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

更换

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

通过

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

设置身份validation信息

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

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