系统提供的互操作性绑定支持的 Web 服务协议

Windows Communication Foundation (WCF) 旨在与支持一组规范(称为 Web 服务规范)的 Web 服务进行互操作。 为了简化互操作性最佳做法的服务配置,WCF 引入三个可互操作的系统提供绑定:System.ServiceModel.BasicHttpBindingSystem.ServiceModel.WSHttpBindingSystem.ServiceModel.WSDualHttpBinding。 为了与结构化信息标准促进组织 (OASIS) 标准实现互操作性,WCF 包括一个可互操作的系统提供绑定:System.ServiceModel.WS2007HttpBinding。 为了进行元数据发布,WCF 包括两个可互操作的系统提供绑定:<mexHttpBinding><mexHttpsBinding>。 本主题列出系统提供的可互操作绑定支持的规范。

basicHttpBinding、wsHttpBinding、ws2007HttpBinding 和 wsDualHttpBinding 绑定支持的 Web 服务协议

所有绑定

<basicHttpBinding><wsHttpBinding><ws2007HttpBinding> 绑定支持以下协议。

注意

有关用于发布元数据的绑定的信息,请参见本主题后面的“系统提供的元数据绑定”一节。

类别 协议 规范和用法
Transport HTTP 1.1 HTTP 1.1

BasicHttpBindingWSHttpBindingWS2007HttpBinding 使用 HTTP 和 HTTPS 传输。
消息传递 MTOM MTOM

basicHttpBindingwsHttpBindingws2007HttpBinding 支持消息传输优化机制 (MTOM)。 默认情况下不使用。 若要使用 MTOM,请将 messageEncoding 属性设置为 "Mtom"

示例:

<wsHttpBinding> <binding messageEncoding="Mtom"/> </wsHttpBinding>
元数据 WSDL 1.1 WSDL 1.1

WCF 使用 Web Services 描述语言 (WSDL) 来描述服务。
元数据 WS-Policy WS-Policy

WCF 使用 WS-Policy 规范和特定于域的断言来描述服务要求和功能。
元数据 WS-Policy 1.5 WS-Policy 1.5

WCF 使用 WS-Policy 规范和特定于域的断言来描述服务要求和功能。
元数据 WS-PolicyAttachment WS-PolicyAttachment

WCF 实现 WS-PolicyAttachment 以在各个范围使用 Web Services 描述语言 (WSDL) 附加策略表达式。
元数据 WS-MetadataExchange WS-MetadataExchange

WCF 实现 WS-MetadataExchange 以检索 XML 架构、WSDL 和 WS-Policy。

basicHttpBinding

类别 协议 规范和用法
消息传递 SOAP 1.1 SOAP 1.1

basicHttpBinding 元素根据基本配置文件 1.1 实现 SOAP 1.1 消息协议。
安全性 WSS SOAP Message Security 1.0(WSS SOAP 消息安全 1.0) WSS SOAP Message Security 1.0(WSS SOAP 消息安全 1.0)

basicHttpBinding 元素根据基本安全配置文件为用户名/密码和基于 X.509 的安全实现 Web 服务安全 (WSS) SOAP 消息安全 1.0 规范。

<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential &#124; "Message" .../> </binding> </basicHttpBinding>
安全性 WSS SOAP 消息安全用户名令牌配置文件 1.0 WSS SOAP 消息安全用户名令牌配置文件 1.0

<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic"/> </security> </basicHttpBinding>
安全性 WSS SOAP 消息安全 X.509 证书令牌配置文件 1.0 WSS SOAP 消息安全 X.509 证书令牌配置文件 1.0

<basicHttpBinding> <security mode="Message"> <message clientCredentialType="Certificate"/> </security> </basicHttpBinding>

wsHttpBinding、ws2007HttpBinding 和 wsDualHttpBinding

类别 协议 规范和用法
消息传递 SOAP 1.2 入门

Messaging framework(消息传送框架)

附属(包括 HTTP 绑定)
消息传递 WS-Addressing 2005/08 Web 服务寻址 1.0 – 核心(可能为英文网页)

Web Services Addressing 1.0 - SOAP

wsHttpBindingws2007HttpBindingwsDualHttpBinding 实现万维网联合会 (W3C) WS-Addressing 建议以启用异步消息传送、消息关联和非特定传输寻址机制。

WCF 不支持对 WS-Addressing 标头进行加密,尽管 WS-* 规范允许这样做。
消息传递 WS-Addressing 1.0 - 元数据 通过在 ServiceMetadata 行为中设置策略版本,启用 WS-Addressing 1.0 元数据对此协议的支持:policyversion 设置为 1.2(默认值)时,sdl 说明符合 WS-Addressing wsdl;policyversion 设置为 1.5 时,wsdl 说明符合 ws-addressing 元数据。

WCF 不支持对 WS-Addressing 标头进行加密,尽管 WS-* 规范允许这样做。
安全性 WSS SOAP Message Security 1.0(WSS SOAP 消息安全 1.0) WSS SOAP Message Security 1.0(WSS SOAP 消息安全 1.0)

securityMode 属性设置为“wsSecurityOverHttp”(默认值)并使用 wsSecurity 子元素配置了参数时使用。

<wsHttpBinding> <binding name="myBinding"> <security mode="Message" .../> </binding> </wsHttpBinding>
安全性 WSS SOAP 消息安全 UsernameToken 配置文件 1.1 WSS SOAP 消息安全用户名令牌配置文件 1.0

wsSecurity 元素的 authenticationMode 属性设置为“Username”时使用。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="UserName negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
安全性 WSS SOAP Message Security X.509 Certificate Token Profile 1.1(WSS SOAP 消息安全 X.509 证书令牌配置文件 1.1) WSS SOAP Message Security X.509 Certificate Token Profile 1.1(WSS SOAP 消息安全 X.509 证书令牌配置文件 1.1)

wsSecurity 元素的 authenticationMode 属性设置为“Username”、“Certificate”或“None”时用于消息保护。 另外,当 wsSecurity 元素的 authenticationMode 属性设置为“Certificate”时用于客户端身份验证。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
安全性 WSS SOAP 消息安全 Kerberos 令牌配置文件 1.1 WSS SOAP 消息安全 Kerberos 令牌配置文件 1.1

wsSecurity 元素的 authenticationMode 属性设置为“Windows”时用于身份验证和消息保护。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Windows" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
安全性 WS-SecureConversation WS-SecureConversation

security/@mode 属性设置为“Message”且 message/@establishSecurityContext 属性设置为“true”(默认值)时用于提供安全会话。
安全性 WS-Trust WS-Trust

由 WS-SecureConversation 使用(参见上面)。
可靠消息传递 WS-ReliableMessaging WS-ReliableMessaging

当绑定配置为使用 reliableSession 时使用。

<wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding>
事务 WS-AtomicTransaction WS-AtomicTransaction

用于事务管理器之间的通信。 WCF 客户端和服务始终使用本地事务管理器。
事务 WS-Coordination WS-Coordination

flowTransactions 属性设置为“Allowed”或“Required”时用于对事务上下文进行流处理。

<wsHttpBinding> <binding transactionFlow="true"/> </wsHttpBinding>

wsFederationHttpBinding 和 ws2007FederationHttpBinding

引入了 <wsFederationHttpBinding><ws2007FederationHttpBinding> 元素以支持联合方案,其中第三方颁发用于对客户端进行身份验证的令牌。 除了 wsHttpBinding 使用的协议以外,wsFederationHttpBinding 还使用:

  • 用于令牌颁布的 WS-Trust

  • 用于已颁发令牌最常见格式的 WSS 安全断言标记语言 (SAML) 令牌配置文件 1.0 和 1.1。

示例:

<wsFederationHttpBinding>
  <binding name="myBinding">
     <security mode="Message">
       <message issuedKeyType="Symmetric"
                issuedTokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1">
         <issuerMetadata address =
         'http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex'/>
       </message>
     </security>
  </binding>
</wsFederationHttpBinding>

有关详细信息,请参阅联合身份验证

系统提供的元数据绑定

下表说明系统提供的可互操作元数据绑定(由 System.ServiceModel.Description.MetadataExchangeBindings 类公开)支持的协议。

mexHttpBinding

<mexHttpBinding> 绑定支持以下协议。 有关使用此绑定的详细信息,请参阅发布元数据

类别 协议 规范和用法
Transport HTTP 1.1 HTTP 1.1
消息传递 SOAP 1.2 入门

Messaging framework(消息传送框架)

附属(包括 HTTP 绑定)
消息传递 WS-Addressing 2005/08 Web 服务寻址 1.0 – 核心(可能为英文网页)

Web Services Addressing 1.0 - SOAP
元数据 WS-MetadataExchange WS-MetadataExchange

WCF 实现 WS-MetadataExchange 以检索 XML 架构、WSDL 和 WS-Policy。

mexHttpsBinding

<mexHttpsBinding> 绑定支持以下协议。 有关使用此绑定的详细信息,请参阅发布元数据

类别 协议 规范和用法
Transport HTTP 1.1 HTTP 1.1

启用传输安全。
消息传递 SOAP 1.2 入门

Messaging framework(消息传送框架)

附属(包括 HTTP 绑定)
消息传递 WS-Addressing 2005/08 Web 服务寻址 1.0 – 核心(可能为英文网页)

Web Services Addressing 1.0 - SOAP
元数据 WS-MetadataExchange WS-MetadataExchange

WCF 实现 WS-MetadataExchange 以检索 XML 架构、WSDL 和 WS-Policy。

另请参阅