Nachrichtensicherheit – WindowsMessage Security Windows

In diesem Beispiel wird veranschaulicht, wie eine WSHttpBinding-Bindung konfiguriert wird, um mit Windows-Authentifizierung Sicherheit auf Nachrichtenebene zu verwenden.This sample demonstrates how to configure a WSHttpBinding binding to use message-level security with Windows authentication. Dieses Beispiel basiert auf der Einstieg.This sample is based on the Getting Started. In diesem Beispiel wird der Dienst in Internetinformationsdiensten (IIS) gehostet, und der Client ist eine Konsolenanwendung (.exe).In this sample, the service is hosted in Internet Information Services (IIS) and the client is a console application (.exe).

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The setup procedure and build instructions for this sample are located at the end of this topic.

Die Standardsicherheit für die <WsHttpBinding > ist nachrichtensicherheit, die mithilfe der Windows-Authentifizierung.The default security for the <wsHttpBinding> is message security using Windows authentication. Legen Sie die Konfigurationsdateien in diesem Beispiel explizit die mode Attribut des der <Sicherheit > zu Message und die clientCredentialType -Attribut auf Windows.The configuration files in this sample explicitly set the mode attribute of the <security> to Message and the clientCredentialType attribute to Windows. Diese Werte sind die Standardwerte für diese Bindung, wurden allerdings, wie in der folgenden Beispielkonfiguration zur Veranschaulichung ihrer Verwendung, explizit konfiguriert.These values are the default values for this binding, but they have been explicitly configured, as shown in the following sample configuration to demonstrate their use.

<bindings>  
    <wsHttpBinding>  
        <binding>  
            <security mode="Message">  
                <message clientCredentialType="Windows"/>  
            </security>  
        </binding>  
    </wsHttpBinding>  
</bindings>  

Die Clientendpunktkonfiguration besteht aus einer absoluten Adresse für den Dienstendpunkt, der Bindung und dem Vertrag.The client endpoint configuration consists of an absolute address for the service endpoint, the binding, and the contract. Die Clientbindung wird mit dem entsprechenden securityMode und authenticationMode konfiguriert.The client binding is configured with the appropriate securityMode and authenticationMode.

<system.serviceModel>  
  <client>  
    <endpoint address=  
            "http://localhost/servicemodelsamples/service.svc"   
            binding="wsHttpBinding"   
            bindingConfiguration="Binding1"   
            contract="Microsoft.ServiceModel.Samples.ICalculator" />  
  </client>  

  <bindings>  
    <wsHttpBinding>  
      <!--   
      <!--The default security for the WSHttpBinding is-->  
      <!--Message security using Windows authentication. -->  
      <!--This configuration explicitly defines the security mode -->  
      <!--as Message and the clientCredentialType as Windows  -->  
      <!--for demonstration purposes. -->  
      <binding name="Binding1">  
        <security mode="Message">  
          <message clientCredentialType="Windows"/>  
        </security>  
      </binding>  
    </wsHttpBinding>  
  </bindings>  
</system.serviceModel>  

Der Quellcode für den Dienst wurde geändert, um zu veranschaulichen, wie ServiceSecurityContext verwendet werden kann, um auf die Identität des Aufrufers zuzugreifen.The service source code has been modified to demonstrate how the ServiceSecurityContext can be used to access the identity of the caller.

public string GetCallerIdentity()  
{  
    // The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.  
    return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;  
}  

Wenn Sie das Beispiel ausführen, werden die Anforderungen und Antworten für den Vorgang im Clientkonsolenfenster angezeigt.When you run the sample, the operation requests and responses are displayed in the client console window. Die erste aufgerufene Methode – GetCallerIdentity – gibt den Namen der Identität des Aufrufers zurück an den Client.The first method called - GetCallerIdentity - returns the name of the caller identity back to the client. Drücken Sie im Konsolenfenster die EINGABETASTE, um den Client zu schließen.Press ENTER in the console window to shut down the client.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. Um das Beispiel in einer Einzelcomputer- oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

Siehe auchSee Also