Sdílet prostřednictvím


Spolehlivá relace vlastních vazeb přes HTTPS

Ukázka ReliableSessionOverHttps ukazuje použití zabezpečení přenosu SSL se spolehlivými relacemi. Spolehlivé relace implementují protokol WS-Reliable Messaging. Zabezpečenou spolehlivou relaci můžete mít tak, že vytvoříte ws-security přes spolehlivé relace. Někdy se ale můžete rozhodnout, že místo toho použijete zabezpečení přenosu HTTP s protokolem SSL.

Ukázkové podrobnosti

SSL zajišťuje zabezpečení samotných paketů. Je důležité si uvědomit, že se to liší od zabezpečení spolehlivé relace pomocí ws-Secure Conversation.

Pokud chcete používat spolehlivou relaci přes HTTPS, musíte vytvořit vlastní vazbu. Tato ukázka vychází ze služby Začínáme , která implementuje službu kalkulačky. Vlastní vazba se vytvoří pomocí spolehlivého elementu <vazby relace a httpsTransport>. Následující konfigurace je vlastní vazba.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service
          name="Microsoft.ServiceModel.Samples.CalculatorService"
          behaviorConfiguration="CalculatorServiceBehavior">
        <!-- use base address provided by host -->
        <endpoint address=""
                  binding="customBinding"
                  bindingConfiguration="reliableSessionOverHttps"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is exposed as http://localhost/servicemodelsamples/service.svc/mex-->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
      </service>
    </services>

    <bindings>
      <customBinding>
        <binding name="reliableSessionOverHttps">
          <reliableSession />
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>

Kód programu v ukázce je stejný jako kód služby Začínáme . Před sestavením a spuštěním ukázky musíte vytvořit certifikát a přiřadit ho pomocí Průvodce certifikátem webového serveru. Definice koncového bodu a definice vazby v nastavení konfiguračního souboru umožňují používat vlastní vazbu, jak je znázorněno v následující ukázkové konfiguraci klienta.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>

    <client>
      <!-- this endpoint has an https: address -->
      <endpoint name=""
                address="https://localhost/servicemodelsamples/service.svc"
                binding="customBinding"
                bindingConfiguration="reliableSessionOverHttps"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </client>

      <bindings>
        <customBinding>
          <binding name="reliableSessionOverHttps">
            <reliableSession />
            <httpsTransport />
          </binding>
        </customBinding>
    </bindings>

  </system.serviceModel>

</configuration>

Zadaná adresa používá https:// schéma.

Vzhledem k tomu, že certifikát použitý v této ukázce je testovací certifikát vytvořený pomocí Makecert.exe, zobrazí se výstraha zabezpečení při pokusu o přístup k adrese https: adresa, například https://localhost/servicemodelsamples/service.svc, z prohlížeče. Aby klient WCF (Windows Communication Foundation) mohl pracovat s testovacím certifikátem, přidal se do klienta další kód, který potlačí výstrahu zabezpečení. Tento kód a doprovodná třída se při použití produkčních certifikátů nevyžaduje.

// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");

Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně konzoly klienta. Stisknutím klávesy ENTER v okně klienta klienta ukončete klienta.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Nastavení, sestavení a spuštění ukázky

  1. Pomocí následujícího příkazu nainstalujte ASP.NET 4.0.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.

  3. Ujistěte se, že jste provedli pokyny k instalaci certifikátu serveru Internetová informační služba (IIS).

  4. Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.

  5. Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.