Vorgehensweise: Schützen von Nachrichten innerhalb einer zuverlässigen SitzungHow to: Secure Messages within Reliable Sessions

Dieses Thema enthält einen Überblick über die Schritte zum Aktivieren der Sicherheit auf Nachrichtenebene für den Nachrichtenaustausch innerhalb einer zuverlässigen Sitzung mithilfe einer der vom System bereitgestellten Bindungen, die eine solche Sitzung zwar unterstützen, standardmäßig aber keine Unterstützung dafür bieten.This topic outlines the steps required to enable message-level security for messages exchanged within a reliable session using one of the system-provided bindings that support such a session, but not by default. Aktivieren Sie eine sichere, zuverlässige Sitzung entweder verbindlich durch Verwenden von Code oder deklarativ in der Konfigurationsdatei.Enable a secure, reliable session either imperatively by using code or declaratively in the configuration file. Dieses Verfahren verwendet die Konfigurationsdateien von Client und Dienst, um die sichere, zuverlässige Sitzung zu aktivieren.This procedure uses the client and service configuration files to enable the secure, reliable session.

Dieses Verfahren besteht aus den folgenden drei Hauptaufgaben:This procedure consists of the following three key tasks:

  1. Angeben, dass der Client und der Dienst Nachrichten in einer zuverlässigen Sitzung austauschen.Specify that the client and service exchange messages within a reliable session.

  2. Anfordern der Sicherheit auf Nachrichtenebene innerhalb der zuverlässigen Sitzung.Require message-level security within the reliable session.

  3. Angeben des Clientanmeldeinformationstyps, den der Client verwenden muss, um sich selbst beim Server authentifizieren zu können.Specify the client credential type that the client must use to be authenticated with the service.

Es ist wichtig, in der ersten Aufgabe, die der Endpunkt-Konfigurationselement enthalten eine bindingConfiguration -Attribut, das auf die Bindungskonfiguration Namens (in diesem Beispiel) MessageSecurity.It's important in the first task that the endpoint configuration element contain a bindingConfiguration attribute that references a binding configuration named (in this example) MessageSecurity. Die <Bindung > Konfigurationselement verweist dann diesen Namen, um zuverlässige Sitzungen zu aktivieren, durch Festlegen der enabled Attribut des der <ReliableSession > Element true.The <binding> configuration element then references this name to enable reliable sessions by setting the enabled attribute of the <reliableSession> element to true. Sie können angeben, dass eine Zusicherung der Zustellung in der richtigen Reihenfolge innerhalb einer zuverlässigen Sitzung verfügbar ist, indem Sie das ordered-Attribut auf true festlegen.You can require that the ordered delivery assurances are available within a reliable session by setting the ordered attribute to true.

Eine Kopie der Quelle des Beispiels auf dem diese Vorgehensweise basiert, finden Sie unter der zuverlässige WS-Sitzung.For the source copy of the example on which this configuration procedure is based, see the WS Reliable Session.

Die wesentlichen Elemente der zweiten Aufgabe werden erreicht, indem die mode Attribut von der <Sicherheit > in enthaltenen Elementen der <Bindung > Element des dem Client und Dienst Message.The essential items of the second task are accomplished by setting the mode attribute of the <security> element contained in the <binding> element of the client and service to Message.

Die wesentlichen Elemente der dritten Aufgabe werden erreicht, indem die clientCredentialType Attribut von der <Nachricht > in enthaltenen Elementen der <Sicherheit > Element des dem Client und Dienst Certificate.The essential items of the third task are accomplished by setting the clientCredentialType attribute of the <message> element contained in the <security> element of the client and service to Certificate.

Hinweis

Wenn Sie nachrichtensicherheit mit zuverlässigen Sitzungen verwenden, versucht das zuverlässiges Messaging, einen nicht authentifizierten Client zu authentifizieren, bis ein Timeout auftritt, statt einer Ausnahme nach dem ersten Fehlschlag.When using message security with reliable sessions, Reliable Messaging attempts to authenticate an unauthenticated client until a timeout occurs instead of throwing an exception upon first failure.

Konfigurieren Sie den Dienst mit WSHttpBinding zur Verwendung einer zuverlässigen SitzungConfigure the service with a WSHttpBinding to use a reliable session

Hierin wird beschrieben, Vorgehensweise: Exchange Nachrichten innerhalb einer zuverlässigen Sitzung.This procedure is described in How to: Exchange Messages Within a Reliable Session.

Konfigurieren Sie den Client mit WSHttpBinding zur Verwendung einer zuverlässigen SitzungConfigure the client with a WSHttpBinding to use a reliable session

Hierin wird beschrieben, Vorgehensweise: Exchange Nachrichten innerhalb einer zuverlässigen Sitzung.This procedure is described in How to: Exchange Messages Within a Reliable Session.

Festlegen Sie der Modus und den ClientCredentialType in der Konfiguration.Set the mode and ClientCredentialType in configuration

  1. Fügen Sie eine entsprechende Bindungselement auf dem <Bindungen > Element der Konfigurationsdatei.Add an appropriate binding element to the <bindings> element of the configuration file. Im folgenden Beispiel wird eine <WsHttpBinding > Element.The following example adds a <wsHttpBinding> element.

  2. Hinzufügen einer <Bindung > Element, und legen seine name -Attribut auf einen geeigneten Wert.Add a <binding> element and set its name attribute to an appropriate value. Im Beispiel wird der Name MessageSecurity.The example uses the name MessageSecurity.

  3. Hinzufügen einer <Sicherheit > Element, und legen die mode -Attribut Message.Add a <security> element and set the mode attribute to Message.

  4. Innerhalb der <Sicherheit > Element, Hinzufügen einer <Nachricht > Element, und legen die clientCredentialType -Attribut Certificate.Within the <security> element, add a <message> element and set the clientCredentialType attribute to Certificate.

<wsHttpBinding>
  <binding name="MessageSecurity">
    <security mode="Message">
      <message clientCredentialType="Certificate" />
    </security>
  </binding>
</wsHttpBinding>