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


BasicBinding с обеспечением безопасности транспорта

В примере TransportSecurity демонстрируется использование безопасности транспорта SSL с базовой привязкой. Этот пример основан на начале работы , который реализует службу калькулятора.

Подробные сведения об образце

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

Примечание.

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

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

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

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

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