Поделиться через


Безопасность транспорта WS

В примере wsTransportSecurity демонстрируется использование безопасности транспорта SSL с привязкой WSHttpBinding . По умолчанию привязка wsHttpBinding обеспечивает взаимодействие по протоколу HTTP. При настройке для безопасности транспорта привязка поддерживает взаимодействие по протоколу HTTPS. Этот пример основан на начале работы , который реализует службу калькулятора. В файлах конфигурации клиента и службы задана и настроена привязка wsHttpBinding.

Примечание.

Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

Код программы в примере идентичен службе "Начало работы ". Перед построением и запуском примера необходимо с помощью мастера сертификатов веб-сервера создать и назначить сертификат. Определения конечной точки и привязки в файле конфигурации устанавливают режим безопасности Transport, как показано в следующем примере файла конфигурации клиента.

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

Указанный адрес использует схему https:// . Конфигурация привязки задает режим безопасности Transport. Тот же режим безопасности необходимо задать в файле Web.config службы.

Так как сертификат, используемый в этом примере, является тестовый сертификат, созданный с Makecert.exe, при попытке получить доступ к https: адресу, например https://localhost/servicemodelsamples/service.svcиз браузера, появится оповещение системы безопасности. Чтобы клиент Windows Communication Foundation (WCF) работал с тестируемым сертификатом, некоторый дополнительный код был добавлен клиенту для подавления оповещения системы безопасности. При использовании рабочих сертификатов этот код и соответствующие классы не требуются.

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

При выполнении примера запросы и ответы операций отображаются в окне консоли клиента. Чтобы закрыть клиент, нажмите клавишу ВВОД в окне клиента.

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.

Настройка, сборка и выполнение образца

  1. Установите ASP.NET 4.0 с помощью следующей команды.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Убедитесь, что вы выполнили процедуру однократной установки для примеров Windows Communication Foundation.

  3. Убедитесь, что вы выполнили инструкции по установке сертификата сервера службы IIS (IIS).

  4. Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Building the Windows Communication Foundation Samples.

  5. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".