Sdílet prostřednictvím


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

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

    1. Přidejte podřízené <customBinding> do <vazeb> konfiguračního souboru služby.

    2. Zadejte název vazby přidáním vazby> do <customBinding> a nastavením atributuname.<

    3. 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í na mutualCertificate11Security klíč je verze specifikace WS-Security, kterou WSE používá k zabezpečení zpráv SOAP. Pro mutualCertificate10Security, WS-Security 1.0 se používá, zatímco WS-Security 1.1 se používá pro mutualCertificate11Security. Pro WCF je verze specifikace WS-Security určena v messageSecurityVersion 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 atributu messageSecurityVersion na WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10.

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

  2. Určete, že služba používá vlastní vazbu.

    1. binding Nastavte atribut elementu koncového< bodu> na customBinding.

    2. bindingConfiguration Nastavte atribut prvku koncového <bodu> na hodnotu zadanou v name 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>

Viz také