Web Services Protocols Supported by System-Provided Interoperability Bindings
Windows Communication Foundation (WCF) is built to interoperate with Web services that support a set of specifications known as Web services specifications. To simplify service configuration for interoperability best practices, WCF introduces three interoperable system-provided bindings: System.ServiceModel.BasicHttpBinding, System.ServiceModel.WSHttpBinding, and System.ServiceModel.WSDualHttpBinding. For interoperability with Organization for the Advancement of Structured Information Standards (OASIS) standards, WCF includes one interoperable system-provided binding: System.ServiceModel.WS2007HttpBinding. For metadata publication, WCF includes two interoperable system-provided bindings: <mexHttpBinding> and <mexHttpsBinding>. This topic lists specifications that system-provided interoperable bindings support.
Web Services Protocols Supported by basicHttpBinding, wsHttpBinding, ws2007HttpBinding, and wsDualHttpBinding Bindings
All Bindings
The <basicHttpBinding>, <wsHttpBinding>, and <ws2007HttpBinding> bindings support the following protocols.
Note
For information about bindings used to publish metadata, see the "System-Provided Metadata Bindings" section later in this topic.
Category | Protocol | Specification and Usage |
---|---|---|
Transport | HTTP 1.1 | HTTP 1.1BasicHttpBinding , WSHttpBinding , and WS2007HttpBinding use the HTTP and HTTPS transports. |
Messaging | MTOM | MTOMbasicHttpBinding , wsHttpBinding , and ws2007HttpBinding support Message Transmission Optimization Mechanism (MTOM). Not used by default. To use MTOM, set the messageEncoding attribute to "Mtom" .Example: <wsHttpBinding> <binding messageEncoding="Mtom"/> </wsHttpBinding> |
Metadata | WSDL 1.1 | WSDL 1.1 WCF uses Web Services Description Language (WSDL) to describe services. |
Metadata | WS-Policy | WS-Policy WCF uses the WS-Policy specification together with domain-specific assertions to describe service requirements and capabilities. |
Metadata | WS-Policy 1.5 | WS-Policy 1.5 WCF uses the WS-Policy specification together with domain-specific assertions to describe service requirements and capabilities. |
Metadata | WS-PolicyAttachment | WS-PolicyAttachment WCF implements WS-PolicyAttachment to attach policy expressions at various scopes in Web Services Description Language (WSDL). |
Metadata | WS-MetadataExchange | WS-MetadataExchange WCF implements WS-MetadataExchange to retrieve XML Schema, WSDL, and WS-Policy. |
basicHttpBinding
Category | Protocol | Specification and Usage |
---|---|---|
Messaging | SOAP 1.1 | SOAP 1.1 In accordance with Basic Profile 1.1, the basicHttpBinding element implements the SOAP 1.1 message protocol. |
Security | WSS SOAP Message Security 1.0 | WSS SOAP Message Security 1.0 In accordance with the Basic Security Profile, the basicHttpBinding element implements the Web Services Security (WSS) SOAP Message Security 1.0 specification for user name/password and X.509-based security.<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential | "Message" .../> </binding> </basicHttpBinding> |
Security | WSS SOAP Message Security UsernameToken Profile 1.0 | WSS SOAP Message Security UsernameToken Profile 1.0<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic"/> </security> </basicHttpBinding> |
Security | WSS SOAP Message Security X.509 Certificate Token Profile 1.0 | WSS SOAP Message Security X.509 Certificate Token Profile 1.0<basicHttpBinding> <security mode="Message"> <message clientCredentialType="Certificate"/> </security> </basicHttpBinding> |
wsHttpBinding, ws2007HttpBinding, and wsDualHttpBinding
Category | Protocol | Specification and Usage |
---|---|---|
Messaging | SOAP 1.2 | Primer Messaging framework Adjuncts (including HTTP binding) |
Messaging | WS-Addressing 2005/08 | Web Services Addressing 1.0 - Core Web Services Addressing 1.0 - SOAP The wsHttpBinding , ws2007HttpBinding , and wsDualHttpBinding implement the World Wide Web Consortium (W3C) WS-Addressing recommendation to enable asynchronous messaging, message correlation, and transport-neutral addressing mechanisms.WCF does not support encryption of WS-Addressing headers although this is allowed by the WS-* specifications. |
Messaging | WS-Addressing 1.0 - Metadata | WS-Addressing 1.0 Metadata Support for this protocol is enabled by setting the policy version in ServiceMetadata behavior - with policyversion set to 1.2 (the default), The wsdl description is compliant with WS-Addressing wsdl, with policyversion set to 1.5, the wsdl description is compliant with ws-addressing metadata. WCF does not support encryption of WS-Addressing headers although this is allowed by the WS-* specifications. |
Security | WSS SOAP Message Security 1.0 | WSS SOAP Message Security 1.0 Use when the securityMode attribute is set to "wsSecurityOverHttp" (default) and parameters are configured using a wsSecurity child element.<wsHttpBinding> <binding name="myBinding"> <security mode="Message" .../> </binding> </wsHttpBinding> |
Security | WSS SOAP Message Security UsernameToken Profile 1.1 | WSS SOAP Message Security UsernameToken Profile 1.0 Use when the wsSecurity element's authenticationMode attribute is set to "Username".<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="UserName negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding> |
Security | WSS SOAP Message Security X.509 Certificate Token Profile 1.1 | WSS SOAP Message Security X.509 Certificate Token Profile 1.1 Use for message protection when the wsSecurity element’s authenticationMode attribute is set to "Username", "Certificate", or "None". Additionally, use this for client authentication when the wsSecurity element’s authenticationMode attribute is set to "Certificate".<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding> |
Security | WSS SOAP Message Security Kerberos Token Profile 1.1 | WSS SOAP Message Security Kerberos Token Profile 1.1 Use for authentication and message protection when the wsSecurity element’s authenticationMode attribute is set to "Windows".<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Windows" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding> |
Security | WS-SecureConversation | WS-SecureConversation Use to provide a secure session when the security/@mode attribute is set to "Message" and the message/@establishSecurityContext attribute is set to "true" (default). |
Security | WS-Trust | WS-Trust Used by WS-SecureConversation (see above). |
Reliable Messaging | WS-ReliableMessaging | WS-ReliableMessaging Use when the binding is configured to use reliableSession .<wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding> |
Transactions | WS-AtomicTransaction | WS-AtomicTransaction Use for communication between transaction managers. WCF clients and services always use local transaction managers. |
Transactions | WS-Coordination | WS-Coordination Use to flow the transaction context when the flowTransactions attribute is set to "Allowed" or "Required".<wsHttpBinding> <binding transactionFlow="true"/> </wsHttpBinding> |
wsFederationHttpBinding and ws2007FederationHttpBinding
The <wsFederationHttpBinding> and <ws2007FederationHttpBinding> elements are introduced to provide support for federated scenarios, where a third party issues a token used to authenticate a client. In addition to the protocols used by wsHttpBinding
, wsFederationHttpBinding
leverages:
WS-Trust
for token issuance.WSS Security Assertions Markup Language (SAML) Token Profile 1.0 and 1.1 for the most commonly issued token format.
Example:
<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>
For more information, see Federation.
System-Provided Metadata Bindings
The following tables describe the protocols supported by the system-provided interoperable metadata bindings exposed by the System.ServiceModel.Description.MetadataExchangeBindings class.
mexHttpBinding
The <mexHttpBinding> binding supports the following protocols. For more information about using this binding, see Publishing Metadata.
Category | Protocol | Specification and Usage |
---|---|---|
Transport | HTTP 1.1 | HTTP 1.1 |
Messaging | SOAP 1.2 | Primer Messaging framework Adjuncts (including HTTP binding) |
Messaging | WS-Addressing 2005/08 | Web Services Addressing 1.0 - Core Web Services Addressing 1.0 - SOAP |
Metadata | WS-MetadataExchange | WS-MetadataExchange WCF implements WS-MetadataExchange to retrieve XML Schema, WSDL, and WS-Policy. |
mexHttpsBinding
<mexHttpsBinding> supports the following protocols. For more information about using this binding, see Publishing Metadata.
Category | Protocol | Specification and Usage |
---|---|---|
Transport | HTTP 1.1 | HTTP 1.1 Transport security is enabled. |
Messaging | SOAP 1.2 | Primer Messaging framework Adjuncts (including HTTP binding) |
Messaging | WS-Addressing 2005/08 | Web Services Addressing 1.0 - Core Web Services Addressing 1.0 - SOAP |
Metadata | WS-MetadataExchange | WS-MetadataExchange WCF implements WS-MetadataExchange to retrieve XML Schema, WSDL, and WS-Policy. |