Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W przykładzie ReliableSessionOverHttps pokazano użycie zabezpieczeń transportu SSL z sesjami Reliable Sessions. Interfejs Reliable Sessions implementuje protokół WS-Reliable Messaging. Możesz mieć bezpieczną i niezawodną sesję, komponując WS-Security przy użyciu sesji niezawodnych. Jednak czasami możesz zamiast tego użyć zabezpieczeń transportu HTTP z protokołem SSL.
Przykładowe szczegóły
Protokół SSL gwarantuje, że same pakiety są zabezpieczone. Należy pamiętać, że różni się to od zabezpieczania niezawodnej sesji przy użyciu WS-Secure Conversation.
Aby korzystać z niezawodnej sesji za pośrednictwem protokołu HTTPS, należy utworzyć powiązanie niestandardowe. Ten przykład jest oparty na Rozpoczęcie, które implementuje usługę kalkulatora. Powiązanie niestandardowe jest tworzone przy użyciu elementu powiązania niezawodnej sesji i <httpsTransport>. Poniższa konfiguracja dotyczy niestandardowego wiązania.
<?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>
Kod programu w przykładzie jest identyczny z kodem usługi Wprowadzenie . Przed utworzeniem i uruchomieniem przykładu należy utworzyć certyfikat i przypisać go za pomocą Kreatora certyfikatów serwera sieci Web. Definicja punktu końcowego i definicja powiązania w ustawieniach pliku konfiguracji umożliwiają użycie powiązania niestandardowego, jak pokazano w poniższej przykładowej konfiguracji klienta.
<?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>
Określony adres używa schematu https://
.
Ponieważ certyfikat używany w tym przykładzie jest certyfikatem testowym utworzonym za pomocą Makecert.exe, podczas próby uzyskania dostępu do adresu https, takiego jak https://localhost/servicemodelsamples/service.svc
, w przeglądarce jest wyświetlany alert zabezpieczeń. Aby umożliwić klientowi programu Windows Communication Foundation (WCF) pracę z certyfikatem testowym, do klienta dodano dodatkowy kod w celu pomijania alertu zabezpieczeń. Ten kod oraz towarzysząca klasa nie są wymagane przy korzystaniu z certyfikatów produkcyjnych.
// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");
Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Naciśnij ENTER w oknie klienta, aby zamknąć klienta.
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.
Aby skonfigurować, skompilować i uruchomić przykładowy program
Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.
Upewnij się, że wykonano instrukcje instalacji certyfikatu serwera usług Internet Information Services (IIS).
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.
Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w Uruchamianie przykładów programu Windows Communication Foundation.