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.
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 |
Sì |
Transport |
NET.TCP |
Associazione |
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