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

Warning Caution:
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.

Warning Caution:
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 = 
         'https://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

> [!NOTE] > 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

Concepts

System-Provided Bindings

Other Resources

basicHttpBinding Element
wsHttpBinding Element
wsHttpDualHttpBinding Element
<mexHttpsBinding>
<mexHttpBinding>