Freigeben über


Transportsicherheit mit Windows-Authentifizierung

Das folgende Szenario zeigt einen Windows Communication Foundation (WCF)-Client und -Dienst, die durch die Windows-Sicherheit geschützt werden. Weitere Informationen zur Programmierung finden Sie unter Gewusst wie: Sichern eines Dienstes mit Windows-Anmeldeinformationen.

Ein Intranetwebdienst zeigt Personalinformationen an. Der Client ist eine Windows Forms-Anwendung. Die Anwendung wird in einer Domäne mit einem Kerberos-Controller bereitgestellt, der die Domäne sichert.

Transportsicherheit mit Windows-Authentifizierung

Merkmal Beschreibung

Sicherheitsmodus

Transport

Interoperabilität

nur WCF

Authentifizierung (Server)

Authentifizierung (Client)

Ja (mithilfe der integrierten Windows-Authentifizierung)

Ja (mithilfe der integrierten Windows-Authentifizierung)

Integrität

Ja

Vertraulichkeit

Ja

Transport

NET.TCP

Bindung

NetTcpBinding

Dienst

Der folgende Code und die Konfiguration werden unabhängig voneinander ausgeführt. Führen Sie einen der folgenden Schritte aus:

  • Erstellen Sie einen separaten Dienst, indem Sie den Code ohne Konfiguration verwenden.
  • Erstellen Sie mit der angegebenen Konfiguration einen Dienst, aber definieren Sie keine Endpunkte.

Code

Im folgenden Code wird gezeigt, wie ein Dienstendpunkt, der Windows-Sicherheit verwendet, erstellt wird.

Konfiguration

Die folgende Konfiguration kann statt des Codes verwendet werden, um den Dienstendpunkt einzurichten:

<?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

Der folgende Code und die folgende Konfiguration werden unabhängig voneinander ausgeführt. Führen Sie einen der folgenden Schritte aus:

  • Erstellen Sie mit dem Code (und dem Clientcode) einen eigenständigen Client.
  • Erstellen Sie einen Client, der keine Endpunktadressen definiert. Verwenden Sie stattdessen den Clientkonstruktor, der den Konfigurationsnamen als Argument verwendet. Beispiel:

Code

Der folgende Code erstellt den Client. Die Bindung ist für die Verwendung der Transportmodussicherheit mit dem TCP-Transport konfiguriert, wobei der Clientanmeldeinformationstyp auf Windows festgelegt ist.

Konfiguration

Die folgende Konfiguration kann statt des Codes verwendet werden, um den Client zu erstellen.

<?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>

Siehe auch

Aufgaben

Gewusst wie: Sichern eines Dienstes mit Windows-Anmeldeinformationen

Konzepte

Sicherheitsübersicht