Udostępnij za pośrednictwem


Zabezpieczenia transportu WS

W przykładzie wsTransportSecurity pokazano użycie zabezpieczeń transportu SSL z powiązaniem WSHttpBinding . Domyślnie powiązanie wsHttpBinding zapewnia komunikację HTTP. Po skonfigurowaniu pod kątem zabezpieczeń transportu powiązanie obsługuje komunikację HTTPS. Ten przykład jest oparty na Rozpoczęcie, które implementuje usługę kalkulatora. Parametr wsHttpBinding jest określony i skonfigurowany w plikach konfiguracji aplikacji dla klienta i usługi.

Uwaga / Notatka

Procedura konfiguracji 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 . Przed utworzeniem i uruchomieniem przykładu należy utworzyć certyfikat i przypisać go za pomocą Kreatora certyfikatów serwera sieci Web. Definicje punktu końcowego i powiązania w ustawieniach pliku konfiguracji Transport umożliwiają tryb zabezpieczeń, co pokazano w poniższej przykładowej konfiguracji klienta.

<system.serviceModel>

    <client>
      <!-- this endpoint has an https: address -->
      <endpoint address="https://localhost/servicemodelsamples/service.svc" binding="wsHttpBinding" bindingConfiguration="Binding1" contract="Microsoft.Samples.TransportSecurity.ICalculator"/>
    </client>

    <bindings>
      <wsHttpBinding>
        <!-- configure wsHttpbinding with Transport security mode
                   and clientCredentialType as None -->
        <binding name="Binding1">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>

  </system.serviceModel>

Określony adres używa schematu https:// . Konfiguracja powiązania ustawia tryb zabezpieczeń na Transport. Ten sam tryb zabezpieczeń musi być określony w pliku Web.config usługi.

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, takiego jak https://localhost/servicemodelsamples/service.svc, w przeglądarce jest wyświetlany alert zabezpieczeń. Aby umożliwić klientowi programu Windows Communication Foundation (WCF) pracę z certyfikatem testowym, do klienta dodano dodatkowy kod w celu pomijania alertu zabezpieczeń. Ten kod oraz towarzysząca klasa nie są wymagane przy korzystaniu z certyfikatów produkcyjnych.

// This code is required only for test certificates like 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.