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


Безопасность транспорта 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. Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.

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

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

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