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


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

Этот образец демонстрирует использование безопасности транспорта SSL с использованием основной привязки. Данный образец основан на образце Образец для начала работы, реализующем службу калькулятора.

ms752256.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Binding\Basic\TransportSecurity

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

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

ms752256.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

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

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

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

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