Postupy: Konfigurace služeb WCF pro spolupráci s klienty WSE 3.0
Služby Wcf (Windows Communication Foundation) jsou kompatibilní s vylepšeními webových služeb 3.0 pro klienty Microsoft .NET (WSE), pokud jsou služby WCF nakonfigurované tak, aby používaly verzi specifikace WS-Adresování ze srpna 2004.
Povolení spolupráce služby WCF s klienty WSE 3.0
Definujte vlastní vazbu pro službu WCF.
Chcete-li určit, že se pro kódování zpráv používá verze specifikace WS-Addressing ze srpna 2004, je nutné vytvořit vlastní vazbu.
Přidejte podřízené <customBinding> do <vazeb> konfiguračního souboru služby.
Zadejte název vazby přidáním vazby> do <customBinding> a nastavením atributu
name
.<Zadejte režim ověřování a verzi specifikací WS-Security, které se používají k zabezpečení zpráv kompatibilních s WSE 3.0 přidáním podřízeného <zabezpečení> do vazby<>.
Pokud chcete nastavit režim ověřování, nastavte
authenticationMode
atribut <zabezpečení>. Režim ověřování je zhruba ekvivalentní kontrolnímu výrazu zabezpečení na klíč ve WSE 3.0. Následující tabulka mapuje režimy ověřování ve WCF na kontrolní výrazy zabezpečení na klíč ve WSE 3.0.Režim ověřování WCF Kontrolní výraz zabezpečení WSE 3.0 na klíč AnonymousForCertificate anonymousForCertificateSecurity
Kerberos kerberosSecurity
MutualCertificate mutualCertificate10Security
*MutualCertificate mutualCertificate11Security
*UserNameOverTransport usernameOverTransportSecurity
UserNameForCertificate usernameForCertificateSecurity
* Jedním z hlavních rozdílů mezi
mutualCertificate10Security
kontrolními výrazy zabezpečení namutualCertificate11Security
klíč je verze specifikace WS-Security, kterou WSE používá k zabezpečení zpráv SOAP. PromutualCertificate10Security
, WS-Security 1.0 se používá, zatímco WS-Security 1.1 se používá promutualCertificate11Security
. Pro WCF je verze specifikace WS-Security určena vmessageSecurityVersion
atributu <zabezpečení>.Chcete-li nastavit verzi specifikace WS-Security, která se používá k zabezpečení zpráv SOAP, nastavte
messageSecurityVersion
atribut <zabezpečení>. Chcete-li spolupracovat s WSE 3.0, nastavte hodnotu atributumessageSecurityVersion
na WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10.Určete, že WCF používá verzi specifikace WS-Addressing ze srpna 2004 přidáním textMessageEncoding> a nastavit
messageVersion
hodnotu na Soap11WSAddressingAugust2004.<Poznámka:
Pokud používáte SOAP 1.2, nastavte
messageVersion
atribut na Soap12WSAddressingAugust2004.
Určete, že služba používá vlastní vazbu.
binding
Nastavte atribut elementu koncového< bodu> nacustomBinding
.bindingConfiguration
Nastavte atribut prvku koncového <bodu> na hodnotu zadanou vname
atributu< vazby pro vlastní vazbu.>
Příklad
Následující příklad kódu určuje, že Service.HelloWorldService
používá vlastní vazbu pro spolupráci s klienty WSE 3.0. Vlastní vazba určuje, že verze WS-Adresování a WS-Security 1.1 sady specifikací ze srpna 2004 se používají ke kódování vyměňovaných zpráv. Zprávy jsou zabezpečené pomocí AnonymousForCertificate režimu ověřování.
<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>