Condividi tramite


Protezione del trasporto con l'autenticazione di Windows

Nello scenario seguente vengono illustrati un client e un servizio Windows Communication Foundation (WCF) protetti con la protezione di Windows. Per ulteriori informazioni sulla programmazione, vedere Procedura: proteggere un servizio con credenziali di Windows.

Un servizio Web intranet consente di visualizzare informazioni sulle risorse umane. Il client è un'applicazione Windows Form. L'applicazione è distribuita in un dominio in cui la protezione è affidata a un controller Kerberos.

Sicurezza del trasporto con l'autenticazione di Windows

Caratteristica Descrizione

Modalità di protezione

Trasporto

Interoperabilità

Solo WCF

Autenticazione (server)

Autenticazione (client)

Sì (utilizza l'autenticazione integrata di Windows)

Sì (utilizza l'autenticazione integrata di Windows)

Integrità

Sì

Riservatezza

Transport

NET.TCP

Associazione

NetTcpBinding

Servizio

Il codice e la configurazione seguenti devono essere eseguiti in modo indipendente. Eseguire una delle operazioni seguenti:

  • Creare un servizio autonomo utilizzando il codice senza alcuna configurazione.
  • Creare un servizio utilizzando la configurazione fornita, ma non definire alcun endpoint.

Codice

Nel codice seguente viene illustrato come creare un endpoint del servizio che utilizza la protezione di Windows.

Configurazione

Per configurare l'endpoint del servizio, è possibile utilizzare la configurazione seguente anziché il codice.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors />
    <services>
      <service behaviorConfiguration="" name="ServiceModel.Calculator">
        <endpoint address="net.tcp://localhost:8008/Calculator" 
                  binding="netTcpBinding"
          bindingConfiguration="WindowsClientOverTcp" 
                  name="WindowsClientOverTcp"
                  contract="ServiceModel.ICalculator" />
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="WindowsClientOverTcp">
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <client />
  </system.serviceModel>
</configuration>

Client

Il codice e la configurazione seguenti devono essere eseguiti in modo indipendente. Eseguire una delle operazioni seguenti:

  • Creare un client autonomo utilizzando il codice (e il codice client).
  • Creare un client che non definisce alcun indirizzo di endpoint. Utilizzare invece il costruttore client che accetta il nome della configurazione come argomento. Ad esempio:

Codice

Il codice seguente crea il client. L'associazione è configurata per utilizzare la protezione della modalità trasporto, con il trasporto TCP e il tipo di credenziale client impostato su Windows.

Configurazione

Per creare il client, è possibile utilizzare la configurazione seguente anziché il codice.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding_ICalculator" >
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint address="net.tcp://localhost:8008/Calculator" 
                binding="netTcpBinding"          
                bindingConfiguration="NetTcpBinding_ICalculator" 
                contract="ICalculator"
                name="NetTcpBinding_ICalculator">
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

Vedere anche

Attività

Procedura: proteggere un servizio con credenziali di Windows

Concetti

Cenni preliminari sulla protezione