您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

正确的方式为SOAP Web服务传达WSSE Usernametoken

正确的方式为SOAP Web服务传达WSSE Usernametoken

如果需要通过HTTPS发送用户名,则可以使用标准方法(如果正确定义了WSDL,则应该通过添加服务引用为您自动创建):

<bindings>
  <basicHttpBinding>
    <binding name="secured">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint name="..." address="https://..." contract="..." binding="basicHttpBinding"
            bindingConfiguration="secured" />
</client>

您可以在代码中定义绑定:

var basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);
basicHttpBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;

您现在将在代理中设置凭据:

client.ClientCredentials.UserName.UserName = "bob";
client.ClientCredentials.UserName.Password = "1234";

如果只需要HTTP上的UserNameToken配置文件,而没有任何其他WS- Security基础结构,则最简单的方法是使用ClearUserNameBinding

如果您对来自客户端的所有请求都需要相同的用户名和密码,则可以使用没有任何安全性的简单basicHttpBinding并包括配置中的静态标头:

<client>
  <endpoint ...>
    <headers>
      <wsse:UsernameToken xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' >
        <wsse:Username>Bob</wsse:Username>
        <wsse:Password Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>
           1234
        </wsse:Password>
      </wsse:UsernameToken>
    </headers>
  </endpoint>
</client>

如果您需要更复杂的内容,请显示WSDL(安全性断言)的相关部分或示例SOAP请求。还要提及是否需要使用HTTP或HTTPS。

其他 2022/1/1 18:13:53 有672人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶