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.1

BasicHttpBinding, WSHttpBinding, and WS2007HttpBinding use the HTTP and HTTPS transports.
Messaging MTOM MTOM

basicHttpBinding, 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 &#124; "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.

See also