1

我有以下标准来帮助我选择 WCF Http 绑定。我的服务需要:

  1. 部署在Intranet支持模拟/委托
  2. 可以与使用未知技术的客户互操作
  3. 支持客户端和服务器之间的事务流
  4. 尽可能不使用证书(放弃“传输”安全模式)

我们需要在basicHttpBindingwsHttpBinding之间做出决定。

以下是关于这三点的一些注意事项和问题:

  1. 我相信带有“Message”安全模式和“Windows”clientCredentialType 的 wsHttpBinding 将允许我执行委托。
  2. 第 1 点中选择的安全配置来实现委托似乎确实使互操作性难以支持,对吗?WS-* 标准 (wsHttpBinding) 绝对是可互操作的,但是结合“消息”安全性和“Windows”凭证,任何WS-* 兼容的客户端都可以调用我的服务吗?
  3. 我相信 wsHttpBinding 似乎是支持事务流的方式?
  4. 在我们的情况下,使用没有证书的“消息”安全似乎更简单?

提前致谢

4

1 回答 1

1

如果要支持事务流,则需要使用 wsHttpBinding。basicHttpBinding 就是这样,一个基本的XML Web 服务。MS 声称它支持 WS-I Basic Profile v1.1,但它看起来更像 v1.2,因为您可以将 MTOM 与该绑定一起使用。

两者都具有高度的互操作性:wsHttpBinding 是众多 WS-* 标准的实现;它不支持的是旧的纯 SOAP 客户端。这包括任何使用 .NET 2.0 样式 Web 服务参考和多种形式的基于 Java 的 SOAP 代理的人。

有了安全性,您开始获得 wsHttpBinding 出现的更多好处。basicHttpBinding 不能执行 Windows 凭据,但是,正如您所指出的,这将限制您的互操作性。我怀疑您会发现使用 Windows 凭据对非 Windows 客户端进行身份验证非常困难,但正如您所指出的,这是发生模拟的唯一方法。对于在 Windows 上运行的非 WCF 客户端,您可能会更幸运,因为客户端仍然可以访问已登录用户的身份验证令牌。

查看您的安全模式将如何影响非 WCF 客户端的最佳方法是发布服务的绑定并wsimport针对它们运行 Java 工具;如果这可以从您的 WSDL 生成一个工作代理,那么您应该能够从任何客户端使用该服务。

于 2012-03-20T20:28:48.227 回答