Udostępnij za pośrednictwem


BasicBinding z zabezpieczeniami transportu

Przykład TransportSecurity demonstruje użycie zabezpieczenia transportowego SSL z podstawowym rodzajem powiązania. Ten przykład jest oparty na Rozpoczęcie, które implementuje usługę kalkulatora.

Przykładowe szczegóły

Domyślnie podstawowe powiązanie obsługuje komunikację HTTP. W przykładzie pokazano, jak włączyć zabezpieczenie transportowe dla powiązania podstawowego. Przed uruchomieniem przykładu należy utworzyć certyfikat i przypisać go za pomocą Kreatora certyfikatów serwera sieci Web.

Uwaga / Notatka

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Kod programu w przykładzie jest identyczny z kodem usługi Wprowadzenie . Definicja punktu końcowego i definicja powiązania w ustawieniach pliku konfiguracji są modyfikowane w celu włączenia bezpiecznej komunikacji, jak pokazano w poniższej przykładowej konfiguracji.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
   </services>
  <bindings>
    <basicHttpBinding>
      <!-- Configure basicHttpBinding with Transport security -->
      <!-- mode and clientCredentialType set to None. -->
      <binding name="Binding1">
        <security mode="Transport">
          <transport clientCredentialType="None"/>
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Ponieważ certyfikat używany w tym przykładzie jest certyfikatem testowym utworzonym za pomocą Makecert.exe, podczas próby uzyskania dostępu do adresu HTTPS w przeglądarce, takiego jak https://localhost/servicemodelsamples/service.svc, pojawia się ostrzeżenie o bezpieczeństwie. Aby umożliwić klientowi programu Windows Communication Foundation (WCF) pracę z certyfikatem testowym, do klienta dodawany jest dodatkowy kod, aby pominąć alert zabezpieczeń. Ten kod i towarzysząca mu klasa nie są konieczne w przypadku korzystania z rzeczywistych certyfikatów.

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

Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Naciśnij ENTER w oknie klienta, aby zamknąć 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.

Aby skonfigurować, skompilować i uruchomić przykładowy program

  1. Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia:

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.

  3. Upewnij się, że wykonano instrukcje instalacji certyfikatu serwera usług Internet Information Services (IIS).

  4. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.

  5. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w Uruchamianie przykładów programu Windows Communication Foundation.