【问题标题】:Timestamp, WS-Security issue on client时间戳,客户端上的 WS-Security 问题
【发布时间】:2012-03-22 16:15:56
【问题描述】:

我在尝试使用 Web 服务时收到错误消息:

 Cannot read the token from the 'Timestamp' element with the 'http://docs.oasis-     open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' namespace for BinarySecretSecurityToken, with a '' ValueType.

不太清楚

客户端是一个 asp.net Web 应用程序,正在调用。在 Wireshark 中,可以看到帖子进入,然后返回响应,但随后出现这样的错误。

为了提供一些背景知识,这是一个对 Java 服务的 Web 服务的 WCF 调用。

【问题讨论】:

    标签: asp.net wcf web-services ws-security


    【解决方案1】:

    您可能需要在消息中添加安全时间戳soap 标头。看看这个SO question,他们遇到了相反的问题,但看看他们的配置可能会有所帮助。此外,如果您可以使用 WCF Interop Express 绑定之一来访问实现 WS-Security 的 java 服务,您可能会省去一些麻烦。

    【讨论】:

    • 我正在为请求添加安全时间戳。这似乎发生在响应中。这可能与绑定有关,因为我正在使用 basichttpbinding。但是,该服务需要 SOAP 1.1...
    • 如果您查看我在回答中引用的问题中的 WCF 配置 XML,您会看到他们正在配置自定义绑定,而不是使用 basicHttpBinding。他们可能没有使用 basicHttpBinding,因为它不支持大多数 ws-* 标准。
    • 我认为这给了我足够的方向来相应地调整我的代码。谢谢!
    • 好的,创建了一个自定义绑定,仍然出现同样的错误。有什么想法吗?
    • 您可以创建一个虚拟 WCF 服务,它的配置就像您的客户端现在一样。对其进行编码和配置,以便您可以按原样使用客户端成功调用它。将 java 服务返回的 soap 消息与虚拟 WCF 服务返回的消息进行比较。问题肯定在于 WCF 对用于实现 ws-security 标准的 soap 标头结构的期望。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多