Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Пример ReliableSessionOverHttps демонстрирует использование транспортной безопасности SSL с надежными сеансами. Функция "Надежные сеансы" реализует протокол обмена сообщениями WS-Reliable. Вы можете получить безопасный надежный сеанс, настроив WS-Security поверх надежных сеансов. Но иногда вы можете вместо этого использовать безопасность транспорта HTTP с SSL.
Детали образца
SSL гарантирует, что сами пакеты защищены. Важно отметить, что это отличается от обеспечения надежной сессии с использованием WS-Secure Conversation.
Чтобы использовать надежный сеанс по протоколу HTTPS, необходимо создать пользовательскую привязку. Этот пример основан на руководстве «Начало работы», которое реализует сервис калькулятора. Пользовательская привязка создается с помощью элемента привязки надежной сессии и <httpsTransport>. Следующая конфигурация является пользовательской привязкой.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- use base address provided by host -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed as http://localhost/servicemodelsamples/service.svc/mex-->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Код программы в примере идентичен службе "Начало работы ". Перед созданием и запуском примера необходимо создать сертификат и присвоить его с помощью Мастера сертификатов веб-сервера. Определение конечной точки и определение привязки в параметрах файла конфигурации позволяет использовать пользовательскую привязку, как показано в следующем примере конфигурации клиента.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<!-- this endpoint has an https: address -->
<endpoint name=""
address="https://localhost/servicemodelsamples/service.svc"
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
</configuration>
Указанный адрес использует схему https:// .
Так как сертификат, используемый в этом примере, является тестовым сертификатом, созданным с помощью 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.
Настройка, сборка и запуск примера
Установите ASP.NET 4.0 с помощью следующей команды.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableУбедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Убедитесь, что вы выполнили инструкции по установке сертификата сервера IIS.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.