【问题标题】:wshttpbinding is only for .net clients?wshttpbinding 仅适用于 .net 客户端?
【发布时间】:2012-09-17 03:07:07
【问题描述】:

wsHttpBinding 是否仅适用于 .NET 客户端

因为在 wsHttpBinding 中默认启用了安全性,所以数据传输是加密的。 那么非 .NET 客户端(如 java 或 php)如何使用此类 WCF 服务呢?

【问题讨论】:

    标签: java wcf wshttpbinding


    【解决方案1】:

    我相信,WsHttpBinding 的默认消息安全设置为“Windows”。这很可能是因为这将使安全工作开箱即用,至少对于 WCF 服务和客户端而言。

    如果您需要可互操作,但很容易更改此设置。您可以将其设置为以下任何一项:

    • Windows(默认)
    • 用户名
    • 证书
    • 已发行令牌

    有关详细信息,请参阅"message, of wsHttpBinding" MSDN page。要测试与您的 Java 或 PHP 客户端的通信,您可以暂时禁用安全性:

    <wsHttpBinding>
      <binding>
        <security mode="Message">
          <!-- Not recommended! Use only for testing. -->
          <message clientCredentialType="None" />
        </security>
      </binding>
    </wsHttpBinding>
    

    在您完成工作后,您可以切换到 - 例如 - 使用证书,具体取决于您的非 WCF 端支持的内容。

    【讨论】:

      【解决方案2】:

      正如 Jeroen 所说,默认情况下 wsHttpBinding 默认为消息安全和 Windows 凭据

      对于非 Windows 客户端,您需要更改身份验证模式。但是,如果您坚持消息安全,您还需要任何消费工具包来实现 WS-Security(和 WS-Trust / WS-SecureConversation)。

      您正在使用 wsHttpBinding 的哪些功能,这意味着 basicHttpBinding 不合适? BasicHttpBinding 是一种更简单的绑定,可以在互操作场景中工作

      【讨论】:

        猜你喜欢
        • 2020-04-06
        • 1970-01-01
        • 1970-01-01
        • 2015-05-25
        • 1970-01-01
        • 2014-11-27
        • 1970-01-01
        • 2016-08-19
        • 1970-01-01
        相关资源
        最近更新 更多