2

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

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

4

2 回答 2

1

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

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

  • 窗户(默认)
  • 没有任何
  • 用户名
  • 证书
  • 已发行令牌

有关更多详细信息,请参阅“wsHttpBinding 的消息”MSDN 页面。要测试与 Java 或 PHP 客户端的通信,您可以暂时禁用安全性:

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

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

于 2012-09-17T05:32:29.503 回答
1

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

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

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

于 2012-09-17T07:30:28.647 回答