What's first?
OK, here is the next one in the list of new features in WCF "v2".There are two new out-of-the-box bindings covering updated/new WS-* specs:
and the respective binding elements:
And these are the specs supported:
The WS-Policy version is controlled by a separate knob on the MEX behavior. For the sake of completeness, the full list of protocols for ws2007HttpBinding is listed below. Support in wsFederationHttpBinding is exactly the same but it uses WSS SAML Token Profile 1.1 for the IssuedToken.
Category
Protocol
Specification and Usage
Messaging
SOAP1.2
Primer: http://www.w3.org/TR/soap12-part0/
Messaging infrastructure: http://www.w3.org/TR/soap12-part1/
Adjuncts (including http binding): http://www.w3.org/TR/soap12-part2/
WS-Addressing 2005/08
http://www.w3.org/TR/ws-addr-core/
http://www.w3.org/TR/ws-addr-soap/
The WS2007HttpBinding implements the W3C WS-Addressing Recommendation to enable asynchronous messaging, message correlation, and transport-neutral addressing mechanisms.
Security
WSS SOAP Message Security 1.1
http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf
Used 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>
WSS SOAP Message Security UsernameToken Profile 1.1
http://www.oasis-open.org/committees/download.php/16782/wss-v1.1-spec-os-UsernameTokenProfile.pdf
Used 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>
WSS SOAP Message Security X509 Token Profile 1.1
http://www.oasis-open.org/committees/download.php/16785/wss-v1.1-spec-os-x509TokenProfile.pdf
Used for message protection when the wsSecurity element’s authenticationMode attribute is set to "Username", "Certificate", or "None". Additionally, this is used 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>
WSS SOAP Message Security Kerberos Token Profile 1.1
http://www.oasis-open.org/committees/download.php/16788/wss-v1.1-spec-os-KerberosTokenProfile.pdf
Used 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>
WS Secure Conversation v1.3
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/ws-secureconversation-1.3-os.html
Used to provide secure session when the security/@mode attribute is set to "Message" and message/@establishSecurityContext is set to "true" (default).
WS Trust v1.3
http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html
Used by WS-SecureConversation (see above).
WS-SecurityPolicy v1.2
http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html
Reliable Messaging
WS-Reliable Messaging v1.1
http://docs.oasis-open.org/ws-rx/wsrm/200702
Used when the binding is configured to use reliableSession.
<wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding>
Transactions
Web Services Atomic Transaction (WS-AtomicTransaction) Version 1.1
http://docs.oasis-open.org/ws-tx/wstx-wsat-1.1-spec-os/wstx-wsat-1.1-spec-os.html
Used for communication between transaction managers. WCF clients and services themselves always use local transaction managers.
Web Services Coordination (WS-Coordination) Version 1.1
http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.1-spec-os/wstx-wscoor-1.1-spec-os.html
Used to flow the transaction context when the flowTransactions attribute is set to "Allowed" or "Required".
<wsHttpBinding> <binding transactionFlow="true"/> </wsHttpBinding>
The way to think about it should be that ws2007HttpBinding is all-standard protocols and wsHttpBinding was about all-submitted protocols.