Procedure: WCF-services configureren voor samenwerking met WSE 3.0-clients
WcF-services (Windows Communication Foundation) zijn compatibel met wire-level met Web Services Enhancements 3.0 voor Microsoft .NET-clients (WSE) wanneer WCF-services zijn geconfigureerd voor gebruik van de versie van augustus 2004 van de WS-Adresseringsspecificatie.
Een WCF-service inschakelen voor samenwerking met WSE 3.0-clients
Definieer een aangepaste binding voor de WCF-service.
Als u wilt opgeven dat de versie van augustus 2004 van de WS-Adresseringsspecificatie wordt gebruikt voor berichtcodering, moet er een aangepaste binding worden gemaakt.
Voeg een onderliggende <customBinding> toe aan de <bindingen> van het configuratiebestand van de service.
Geef een naam op voor de binding door een <binding> toe te voegen aan customBinding>< en het
name
kenmerk in te stellen.Geef een verificatiemodus en de versie van de WS-Security-specificaties op die worden gebruikt voor het beveiligen van berichten die compatibel zijn met WSE 3.0 door een onderliggende <beveiliging> toe te voegen aan de <binding>.
Als u de verificatiemodus wilt instellen, stelt u het
authenticationMode
kenmerk van de <beveiliging> in. Een verificatiemodus is ongeveer gelijk aan een kant-en-klare beveiligingsverklaring in WSE 3.0. In de volgende tabel worden verificatiemodi in WCF toegewezen aan kant-en-klare beveiligingsverklaringen in WSE 3.0.WCF-verificatiemodus WSE 3.0-kant-en-klare beveiligingsverklaring AnonymousForCertificate anonymousForCertificateSecurity
Kerberos kerberosSecurity
MutualCertificate mutualCertificate10Security
*MutualCertificate mutualCertificate11Security
*UserNameOverTransport usernameOverTransportSecurity
UserNameForCertificate usernameForCertificateSecurity
* Een van de belangrijkste verschillen tussen de
mutualCertificate10Security
en kant-en-klaremutualCertificate11Security
beveiligingsverklaringen is de versie van de WS-Security-specificatie die door WSE wordt gebruikt om de SOAP-berichten te beveiligen. VoormutualCertificate10Security
, WS-Security 1.0 wordt gebruikt, terwijl WS-Security 1.1 wordt gebruikt voormutualCertificate11Security
. Voor WCF wordt de versie van de WS-Security-specificatie opgegeven in hetmessageSecurityVersion
kenmerk van de <beveiliging>.Als u de versie van de WS-Security-specificatie wilt instellen die wordt gebruikt voor het beveiligen van SOAP-berichten, stelt u het
messageSecurityVersion
kenmerk van de <beveiliging> in. Als u wilt samenwerken met WSE 3.0, stelt u de waarde van hetmessageSecurityVersion
kenmerk in op WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10.Geef op dat de versie van augustus 2004 van de WS-Adresseringsspecificatie wordt gebruikt door WCF door een <textMessageEncoding toe te> voegen en de
messageVersion
waarde ervan in te Soap11WSAddressingAugust2004stellen op .Notitie
Wanneer u SOAP 1.2 gebruikt, stelt u het
messageVersion
kenmerk in op Soap12WSAddressingAugust2004.
Geef op dat de service gebruikmaakt van de aangepaste binding.
Stel het
binding
kenmerk van het <eindpuntelement> in opcustomBinding
.Stel het
bindingConfiguration
kenmerk van het <eindpuntelement> in op de waarde die is opgegeven in hetname
kenmerk van de< binding> voor de aangepaste binding.
Opmerking
In het volgende codevoorbeeld wordt aangegeven dat er Service.HelloWorldService
een aangepaste binding wordt gebruikt om samen te werken met WSE 3.0-clients. De aangepaste binding geeft aan dat de versie van augustus 2004 van de WS-Addressing en de WS-Security 1.1-set specificaties worden gebruikt om de uitgewisselde berichten te coderen. De berichten worden beveiligd met behulp van de AnonymousForCertificate verificatiemodus.
<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>