【问题标题】:adding custom SOAP header request添加自定义 SOAP 标头请求
【发布时间】:2017-07-04 15:51:02
【问题描述】:

请帮助我在 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);

谢谢

【问题讨论】:

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


    【解决方案1】:

    您可以使用以下代码以编程方式添加 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);
    }
    

    【讨论】:

    • 你能解释更多请在哪里添加它。
    • 我不能,因为你没有分享你调用网络服务的代码。请分享它,我将编辑我的答案。
    • 对不起,标签名称应该是
    • Seconded ...如何设置标题的命名空间,特别是 WSSE:Security 中使用的命名空间?
    猜你喜欢
    • 2013-11-13
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2016-11-14
    • 2012-11-15
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多