系统提供的互操作性绑定支持的 Web 服务协议
Windows Communication Foundation (WCF) 旨在与支持一组规范(称为 Web 服务规范)的 Web 服务进行互操作。 为了简化互操作性最佳做法的服务配置,WCF 引入三个可互操作的系统提供绑定:System.ServiceModel.BasicHttpBinding、System.ServiceModel.WSHttpBinding 和 System.ServiceModel.WSDualHttpBinding。 为了与结构化信息标准促进组织 (OASIS) 标准实现互操作性,WCF 包括一个可互操作的系统提供绑定:System.ServiceModel.WS2007HttpBinding。 为了进行元数据发布,WCF 包括两个可互操作的系统提供绑定:<mexHttpBinding> 和 <mexHttpsBinding>。 本主题列出系统提供的可互操作绑定支持的规范。
basicHttpBinding、wsHttpBinding、ws2007HttpBinding 和 wsDualHttpBinding 绑定支持的 Web 服务协议
所有绑定
<basicHttpBinding>、<wsHttpBinding> 和 <ws2007HttpBinding> 绑定支持以下协议。
注意
有关用于发布元数据的绑定的信息,请参见本主题后面的“系统提供的元数据绑定”一节。
类别 | 协议 | 规范和用法 |
---|---|---|
Transport | HTTP 1.1 | HTTP 1.1BasicHttpBinding 、WSHttpBinding 和 WS2007HttpBinding 使用 HTTP 和 HTTPS 传输。 |
消息传递 | MTOM | MTOMbasicHttpBinding 、wsHttpBinding 和 ws2007HttpBinding 支持消息传输优化机制 (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.1basicHttpBinding 元素根据基本配置文件 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 | "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 wsHttpBinding 、ws2007HttpBinding 和 wsDualHttpBinding 实现万维网联合会 (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。 |