【问题标题】:Webservice WS-Security namespace of Type attribute类型属性的 Webservice WS-Security 命名空间
【发布时间】:2015-12-15 12:10:45
【问题描述】:

我使用 WS-Security 向外部 Web 服务发出请求。形成 SoapUI 一切正常。在 .Net (C#) 中没有。

我发现请求的不同之处在于Security header中Type属性的命名空间。

来自soapUI的标题包含:

    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <o:UsernameToken u:Id="uuid-90bae2a1-88a9-4b4c-b84e-9244d3576051-7">
            <o:Username>******</o:Username>
            <o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">******</o:Password>
        </o:UsernameToken>
    </o:Security>

来自 .net (C#) 的 xml 是这样的:

    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <o:UsernameToken u:Id="uuid-90bae2a1-88a9-4b4c-b84e-9244d3576051-7">
            <o:Username>******</o:Username>
            <o:Password o:Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">******</o:Password>
        </o:UsernameToken>
    </o:Security>

问题是服务器不接受密码元素的 Type 属性中的 o:。

首先:服务器是否应该接受Type属性中的o:?

第二个(也是更重要的):有没有办法从 Type 属性中删除 o:,因为我无法控制 Web 服务?

在 C# 中,我使用带有 TransportWithMessageCredential 安全模式的 basicHttpBinding。

【问题讨论】:

    标签: c# xml web-services soap ws-security


    【解决方案1】:

    a thread on Connect - 8 年前! - 引用了相同的问题:

    当我的应用程序服务器尝试验证这一点时,它会失败并显示 关于密码类型属性的消息。一个的存在 命名空间声明似乎导致架构验证失败。

    回复是:

    不幸的是,WCF 生成的令牌不正确。一个错误已经 为此申请。

    您有几种解决方法

    1) 更简单——设置WSSecurityTokenSerializer.EmitsBspRequiredAttribute = false。这将完全抑制 Type 属性,在这种情况下 默认为

    http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText。 这是您当前指定的内容,但您需要确保 服务需要该默认值,并且不需要指定其他任何内容。

    2) 更难——为用户名令牌编写自定义序列化程序以进行更正 这种行为。

    线程后面有一个序列化器的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 2022-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      相关资源
      最近更新 更多