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.

All Bindings

The <basicHttpBinding>, <wsHttpBinding>, and <ws2007HttpBinding> bindings support the following protocols.

System_CAPS_ICON_note.jpg Note

For information about bindings used to publish metadata, see the "System-Provided Metadata Bindings" section later in this topic.

CategoryProtocolSpecification and Usage
TransportHTTP 1.1HTTP 1.1

 BasicHttpBinding, WSHttpBinding, and WS2007HttpBinding use the HTTP and HTTPS transports.
MessagingMTOMMTOM

 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>
MetadataWSDL 1.1WSDL 1.1

 WCF uses Web Services Description Language (WSDL) to describe services.
MetadataWS-PolicyWS-Policy

 WCF uses the WS-Policy specification together with domain-specific assertions to describe service requirements and capabilities.
MetadataWS-Policy 1.5WS-Policy 1.5

 WCF uses the WS-Policy specification together with domain-specific assertions to describe service requirements and capabilities.
MetadataWS-PolicyAttachmentWS-PolicyAttachment

 WCF implements WS-PolicyAttachment to attach policy expressions at various scopes in Web Services Description Language (WSDL).
MetadataWS-MetadataExchangeWS-MetadataExchange

 WCF implements WS-MetadataExchange to retrieve XML Schema, WSDL, and WS-Policy.

basicHttpBinding

CategoryProtocolSpecification and Usage
MessagingSOAP 1.1SOAP 1.1

In accordance with Basic Profile 1.1, the basicHttpBinding element implements the SOAP 1.1 message protocol.
SecurityWSS SOAP Message Security 1.0WSS 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>
SecurityWSS SOAP Message Security UsernameToken Profile 1.0WSS SOAP Message Security UsernameToken Profile 1.0

 <basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic"/> </security> </basicHttpBinding>
SecurityWSS SOAP Message Security X.509 Certificate Token Profile 1.0WSS SOAP Message Security X.509 Certificate Token Profile 1.0

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

wsHttpBinding, ws2007HttpBinding, and wsDualHttpBinding

CategoryProtocolSpecification and Usage
MessagingSOAP 1.2Primer

 Messaging framework

 Adjuncts (including HTTP binding)
MessagingWS-Addressing 2005/08Web 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.
MessagingWS-Addressing 1.0 - MetadataWS-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.
SecurityWSS SOAP Message Security 1.0WSS 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>
SecurityWSS SOAP Message Security UsernameToken Profile 1.1WSS 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>
SecurityWSS SOAP Message Security X.509 Certificate Token Profile 1.1WSS 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>
SecurityWSS SOAP Message Security Kerberos Token Profile 1.1WSS 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>
SecurityWS-SecureConversationWS-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).
SecurityWS-TrustWS-Trust

Used by WS-SecureConversation (see above).
Reliable MessagingWS-ReliableMessagingWS-ReliableMessaging

Use when the binding is configured to use reliableSession.

 <wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding>
TransactionsWS-AtomicTransactionWS-AtomicTransaction

Use for communication between transaction managers. WCF clients and services always use local transaction managers.
TransactionsWS-CoordinationWS-Coordination

Use to flow the transaction context when the flowTransactions attribute is set to "Allowed" or "Required".

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

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 .

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.

CategoryProtocolSpecification and Usage
TransportHTTP 1.1HTTP 1.1
MessagingSOAP 1.2Primer

 Messaging framework

 Adjuncts (including HTTP binding)
MessagingWS-Addressing 2005/08Web Services Addressing 1.0 - Core

 Web Services Addressing 1.0 - SOAP
MetadataWS-MetadataExchangeWS-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.

CategoryProtocolSpecification and Usage
TransportHTTP 1.1HTTP 1.1

Transport security is enabled.
MessagingSOAP 1.2Primer

 Messaging framework

 Adjuncts (including HTTP binding)
MessagingWS-Addressing 2005/08Web Services Addressing 1.0 - Core

 Web Services Addressing 1.0 - SOAP
MetadataWS-MetadataExchangeWS-MetadataExchange

 WCF implements WS-MetadataExchange to retrieve XML Schema, WSDL, and WS-Policy.

System-Provided Bindings
<basicHttpBinding>
<wsHttpBinding>
<wsDualHttpBinding>
<mexHttpsBinding>
<mexHttpBinding>

Show: