【问题标题】:Should I use basicHttpBinding or WsHttpBinding for creating a secure Java Client?我应该使用 basicHttpBinding 还是 WsHttpBinding 来创建安全的 Java 客户端?
【发布时间】:2013-10-11 21:28:30
【问题描述】:

我今天花了几个小时试图让一个非常简单的 WCF 服务和一个 Java 客户端相互通信。我只是成功地让服务和客户端使用未启用安全性的 basicHttpBinding 进行通信。

我希望通过网络对内容进行加密。我试过使用这个的 basicHttpBinding 配置:

  <basicHttpBinding>
    <binding name="bindingConfig">
      <security mode="Transport">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </basicHttpBinding>

现在这几乎会导致大量问题,因为当我的服务托管在 IIS 上时,我在尝试本地测试 WCF 服务(使用 WCF 测试客户端的 VS2012)、使用任何浏览器浏览到 WSDL 以及使用用于生成客户端的 Svcutil/wsimport 实用程序。

我不明白的是,当我使用 WsHttpBinding 和使用 Transport/Windows 安全时,我从来没有遇到过证书问题,这是为什么呢?

在任何人有想法之后,最简单的实现我的方法是什么?

【问题讨论】:

    标签: c# java wcf basichttpbinding wshttpbinding


    【解决方案1】:

    WCF 和 Java 的兼容性有点复杂。

    首先,你在 Java 中使用的是哪个框架?

    其次,在 WCF 方面,您最好使用自定义绑定而不是 wsHttpBinding。 您可以使用此tool 轻松转换您的绑定。有了您的绑定,它将给出:

    <customBinding>
      <binding name="NewBinding0">
        <textMessageEncoding MessageVersion="Soap11" />
        <httpsTransport authenticationScheme="Negotiate" />
      </binding>
    </customBinding>
    

    现在您只需配置 Java 端或调整 WCF 配置,即可启用 SOAP12,而不是 SOAP11。让我知道它是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 2015-11-09
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      相关资源
      最近更新 更多