【问题标题】:Soap client from WSDL: add ws-security header来自 WSDL 的 Soap 客户端:添加 ws-security 标头
【发布时间】:2016-05-03 08:34:30
【问题描述】:

在 c# 控制台项目中,我添加了来自 wsdl 的服务引用。

在应用程序配置中,我有以下 xml 代码:

<bindings>
     <basicHttpBinding>
         <binding name="verificaValiditaPatenteSoap11" />
     </basicHttpBinding>
</bindings>
<client>
    <endpoint address="http://myurl.com/services/myservice"
            binding="basicHttpBinding" bindingConfiguration="xxxxxxxx"
            contract="xxxxxx" name="xxxxxx" />
</client>

当我看到请求的输出时,我没有 wsse 标头。 我在消息中需要请求中的以下标头。我怎样才能做到这一点?如何添加 ws-security?有教程吗?

<soapenv:Header><wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-91C0647D2779DF588C14621957892417"><wsse:Username>MyUsername</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">MyPassword</wsse:Password></wsse:UsernameToken></wsse:Security></soapenv:Header>

【问题讨论】:

    标签: c# .net wcf soap wcf-data-services


    【解决方案1】:

    要获得一些实用的指导,你应该看看 Scott Hanselman 的博客,这是一篇关于 WS-Security 的帖子:

    http://www.hanselman.com/blog/BreakingAllTheRulesWithWCF.aspx

    还有解决 WS-Security 基础的 Microsoft 模式和实践:https://msdn.microsoft.com/en-us/library/ff650862.aspx

    无论如何,您可以开始在您的服务中包含安全传输,并将其添加到您的配置文件中:

    <binding name="verificaValiditaPatenteSoap11">
          <security mode="TransportWithMessageCredential" />
    </binding>
    

    因此您将能够找到 WS-Security 标头。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多