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

Adr*_*iro 7 c# security web-services

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

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

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

是的,我读过这篇文章(对于如何创建SOAP <wsse:Security>标题无能为力),但它没有用.

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

Adr*_*iro 14

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

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

更换

public partial class UserWS : System.Web.Services.Protocols.SoapHttpClientProtocol
Run Code Online (Sandbox Code Playgroud)

通过

public partial class UserWS : Microsoft.Web.Services2.WebServicesClientProtocol
Run Code Online (Sandbox Code Playgroud)
  • 在调用Web服务之前:

设置身份验证信息

UsernameToken token = new UsernameToken("user", "pwd", PasswordOption.SendPlainText);
yourProxy.RequestSoapContext.Security.Tokens.Add(token);
Run Code Online (Sandbox Code Playgroud)

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

  • WSE 2.0可以通过Nuget添加到您的项目中.https://www.nuget.org/packages/Microsoft.Web.Services2/ (2认同)