Training
Module
Work with web services in Dynamics 365 Business Central - Training
Use SOAP and OData to read and update records, and handle UI interaction in Business Central.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Windows Communication Foundation (WCF) services are wire-level compatible with Web Services Enhancements 3.0 for Microsoft .NET (WSE) clients when WCF services are configured to use the August 2004 version of the WS-Addressing specification.
Define a custom binding for the WCF service.
To specify that the August 2004 version of the WS-Addressing specification is used for message encoding, a custom binding must be created.
Add a child <customBinding> to the <bindings> of the service's configuration file.
Specify a name for the binding, by adding a <binding> to the <customBinding> and setting the name
attribute.
Specify an authentication mode and the version of the WS-Security specifications that are used to secure messages that are compatible with WSE 3.0, by adding a child <security> to the <binding>.
To set the authentication mode, set the authenticationMode
attribute of the <security>. An authentication mode is roughly equivalent to a turnkey security assertion in WSE 3.0. The following table maps authentication modes in WCF to turnkey security assertions in WSE 3.0.
WCF Authentication Mode | WSE 3.0 turnkey security assertion |
---|---|
AnonymousForCertificate | anonymousForCertificateSecurity |
Kerberos | kerberosSecurity |
MutualCertificate | mutualCertificate10Security * |
MutualCertificate | mutualCertificate11Security * |
UserNameOverTransport | usernameOverTransportSecurity |
UserNameForCertificate | usernameForCertificateSecurity |
* One of the primary differences between the mutualCertificate10Security
and mutualCertificate11Security
turnkey security assertions is the version of the WS-Security specification that WSE uses to secure the SOAP messages. For mutualCertificate10Security
, WS-Security 1.0 is used, whereas WS-Security 1.1 is used for mutualCertificate11Security
. For WCF, the version of the WS-Security specification is specified in the messageSecurityVersion
attribute of the <security>.
To set the version of the WS-Security specification that is used to secure SOAP messages, set the messageSecurityVersion
attribute of the <security>. To interoperate with WSE 3.0, set the value of the messageSecurityVersion
attribute to WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10.
Specify that the August 2004 version of the WS-Addressing specification is used by WCF by adding a <textMessageEncoding> and set the messageVersion
to its value to Soap11WSAddressingAugust2004.
Note
When you are using SOAP 1.2, set the messageVersion
attribute to Soap12WSAddressingAugust2004.
Specify that the service uses the custom binding.
Set the binding
attribute of the <endpoint> element to customBinding
.
Set the bindingConfiguration
attribute of the <endpoint> element to the value specified in the name
attribute of the <binding> for the custom binding.
The following code example specifies that the Service.HelloWorldService
uses a custom binding to interoperate with WSE 3.0 clients. The custom binding specifies that the August 2004 version of the WS-Addressing and the WS-Security 1.1 set of specifications are used to encode the exchanged messages. The messages are secured using the AnonymousForCertificate authentication mode.
<configuration>
<system.serviceModel>
<services>
<service
behaviorConfiguration="ServiceBehavior"
name="Service.HelloWorldService">
<endpoint binding="customBinding" address=""
bindingConfiguration="ServiceBinding"
contract="Service.IHelloWorld"></endpoint>
</service>
</services>
<bindings>
<customBinding>
<binding name="ServiceBinding">
<security authenticationMode="AnonymousForCertificate"
messageProtectionOrder="SignBeforeEncrypt"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireDerivedKeys="false">
</security>
<textMessageEncoding messageVersion ="Soap11WSAddressingAugust2004"></textMessageEncoding>
<httpTransport/>
</binding>
</customBinding>
</bindings>
<behaviors>
<behavior name="ServiceBehavior" returnUnknownExceptionsAsFaults="true">
<serviceCredentials>
<serviceCertificate findValue="CN=WCFQuickstartServer" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectDistinguishedName"/>
</serviceCredentials>
</behavior>
</behaviors>
</system.serviceModel>
</configuration>
Training
Module
Work with web services in Dynamics 365 Business Central - Training
Use SOAP and OData to read and update records, and handle UI interaction in Business Central.