添加自定义SOAP标头请求

时间:2017-07-04 15:51:02

标签: c# asp.net soap soap-client

我需要帮助将以下标题添加到C#ASP.net Web应用程序中的SOAP请求

    <wata:auth xmlns:wata="http://osb.wata.com">
       <username>username</username>
       <password>password</password>
    </wata:auth>

请注意标记应该是相同的,并且我已经尝试通过继承Microsoft.Web.Service3.WebServicesClientProtocol形式添加此标头,但这不起作用,因为标记不同。

服务调用类似于使用WSDL定义生成的以下内容

    service.ServiceProxy check = new service.ServiceProxy();
    check.checkPostService(serviceId);

由于

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令以编程方式添加SOAP标头:

service.ServiceProxy check = new service.ServiceProxy();

using (new OperationContextScope(check.InnerChannel))
{
      var usernameHeader = MessageHeader.CreateHeader("username", string.Empty, _username);
      OperationContext.Current.OutgoingMessageHeaders.Add(usernameHeader);
      var passwordHeader = MessageHeader.CreateHeader("password", string.Empty, _passowrd);
      OperationContext.Current.OutgoingMessageHeaders.Add(passwordHeader);

      check.checkPostService(serviceId);
}