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 zapewnia komunikację wsHttpBinding HTTP. Po skonfigurowaniu pod kątem zabezpieczeń transportu powiązanie obsługuje komunikację HTTPS. Ten przykład jest oparty na wprowadzenie , który implementuje usługę kalkulatora. Parametr wsHttpBinding jest określony i skonfigurowany w plikach konfiguracji aplikacji dla klienta i usługi.

Uwaga

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. Definicja punktu końcowego i definicja powiązania w ustawieniach pliku konfiguracji umożliwiają Transport tryb zabezpieczeń, jak 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, alert zabezpieczeń jest wyświetlany podczas próby uzyskania dostępu do adresu HTTPS, takiego jak https://localhost/servicemodelsamples/service.svc, z przeglądarki. 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 i towarzyszący jej klasa nie są wymagane w przypadku korzystania 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 klawisz 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ład

  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 jednorazowej 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 temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

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