Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'esempio ReliableSessionOverHttps illustra l'uso della sicurezza del trasporto SSL con sessioni affidabili. Reliable Sessions implementa il protocollo di messaggistica WS-Reliable. È possibile avere una sessione affidabile sicura componendo WS-Security su sessioni affidabili. In alcuni casi, tuttavia, è possibile scegliere di usare la sicurezza del trasporto HTTP con SSL.
Dettagli di esempio
SSL garantisce che i pacchetti stessi siano protetti. È importante notare che questa operazione è diversa dalla protezione della sessione affidabile utilizzando WS-Secure Conversation.
Per usare una sessione affidabile su HTTPS, è necessario creare un'associazione personalizzata. Questo esempio si basa sull'Introduzione che implementa un servizio calcolatrice. Viene creata un'associazione personalizzata usando l'elemento di associazione di sessione affidabile e <httpsTransport>. La configurazione seguente è dell'associazione personalizzata.
<?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>
Il codice del programma nell'esempio è identico a quello del servizio Attività iniziali . È necessario creare un certificato e assegnarlo usando la procedura guidata del certificato del server Web, prima di eseguire e compilare l'esempio. La definizione dell'endpoint e la definizione dell'associazione nelle impostazioni del file di configurazione consentono l'uso dell'associazione personalizzata, come illustrato nella configurazione di esempio seguente per il client.
<?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>
L'indirizzo specificato usa lo https:// schema .
Poiché il certificato usato in questo esempio è un certificato di test creato con Makecert.exe, viene visualizzato un avviso di sicurezza quando si tenta di accedere a un indirizzo https: , ad esempio https://localhost/servicemodelsamples/service.svc, dal browser. Per consentire al client Windows Communication Foundation (WCF) di lavorare con un certificato di test sul posto, è stato aggiunto un codice aggiuntivo al client per eliminare l'avviso di sicurezza. Questo codice e la classe associata non sono necessari quando si usano i certificati di produzione.
// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");
Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Premere INVIO nella finestra del client per chiudere il client.
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.
Per configurare, compilare ed eseguire l'esempio
Installare ASP.NET 4.0 usando il comando seguente.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableAssicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.
Assicurarsi di aver eseguito le istruzioni per l'installazione dei certificati del server Internet Information Services (IIS).
Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.
Per eseguire l'esempio in una configurazione con computer singolo o incrociato, seguire le istruzioni riportate in Esecuzione degli esempi di Windows Communication Foundation.