Sicurezza del trasporto WS
Nell’esempio wsTransportSecurity, viene illustrato l'utilizzo della sicurezza del trasporto SSL con l'associazione WSHttpBinding. Per impostazione predefinita, l'associazione wsHttpBinding
consente la comunicazione HTTP. Se viene configurata per la sicurezza del trasporto, l'associazione supporta la comunicazione HTTPS. Questo esempio si basa sull'Introduzione che implementa un servizio calcolatrice. L'associazione wsHttpBinding
è specificata e configurata nei file di configurazione dell'applicazione per il client e il servizio.
Nota
La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.
Il codice del programma dell'esempio è identico a quello del servizio Introduzione. È necessario creare un certificato e assegnarlo utilizzando la Gestione guidata certificati server Web prima di compilare ed eseguire l'esempio. Le definizioni dell'endpoint e dell'associazione nelle impostazioni del file di configurazione abilitano la modalità di sicurezza Transport
, come illustrato nella configurazione di esempio seguente per il client.
<system.serviceModel>
<client>
<!-- this endpoint has an https: address -->
<endpoint address="https://localhost/servicemodelsamples/service.svc" binding="wsHttpBinding" bindingConfiguration="Binding1" contract="Microsoft.Samples.TransportSecurity.ICalculator"/>
</client>
<bindings>
<wsHttpBinding>
<!-- configure wsHttpbinding with Transport security mode
and clientCredentialType as None -->
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
L'indirizzo specificato utilizza lo schema https://
. La configurazione dell'associazione imposta la modalità di sicurezza su Transport
. La stessa modalità di sicurezza deve essere specificata nel file Web.config del servizio.
Poiché il certificato usato in questo esempio è un certificato di prova creato con Makecert.exe, viene visualizzato un avviso di sicurezza quando si tenta di accedere a un indirizzo https: come https://localhost/servicemodelsamples/service.svc
, dal browser. Per consentire al client Windows Communication Foundation (WCF) di lavorare con un certificato di test, è stato aggiunto altro codice al client per sopprimere l'avviso di sicurezza. Il codice e la classe associata non sono richiesti quando si utilizzano 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 arrestare 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 impostare, 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 /enable
Assicurarsi di aver eseguito la Procedura di installazione singola 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 in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Building the Windows Communication Foundation Samples.
Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.