Freigeben über


ContextExchangeMechanism Enumeration

Definition

Gibt an, ob als Mechanismus für den Kontextaustausch in einer Unterhaltung zwischen Client und Dienst ein HTTP-Cookie oder ein SOAP-Header verwendet wird.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Vererbung
ContextExchangeMechanism

Felder

ContextSoapHeader 0

Ein SOAP-Header wird zum Austauschen von Kontext verwendet. Dies ist der Standardaustauschmechanismus.

HttpCookie 1

Ein HTTP-Cookie wird zum Austauschen von Kontext verwendet.

Hinweise

Verwenden Sie zum Angeben des Werts von ContextExchangeMechanism für die Unterhaltung zwischen Client und Dienst die ContextBindingElement(ProtectionLevel, ContextExchangeMechanism)-Eigenschaft oder den ContextExchangeMechanism-Konstruktor.

Für Dienstendpunkte, bei denen die Unterstützung des Kontextaustauschprotokolls erforderlich ist, kann diese Anforderung in der veröffentlichten Richtlinie als explizite Anforderung festgelegt werden. Richtlinienassertionen, die die Anforderung des Clients zum Unterstützen des Kontextaustauschprotokolls auf SOAP-Ebene darstellen oder das Aktivieren der Unterstützung von HTTP-Cookies erfordern, können von einem Endpunkt veröffentlicht werden. Die Generierung dieser Assertionen in der Richtlinie auf Dienstseite wird vom Wert der ContextExchangeMechanism-Eigenschaft folgendermaßen gesteuert:

  • Für HttpCookie wird die folgende Assertion generiert:

    <HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>  
    
  • Für ContextSoapHeader wird die folgende Assertion generiert:

    <IncludeContext   
    xmlns="http://schemas.microsoft.com/ws/2006/05/context"  
    protectionLevel="Sign" />  
    

Die HttpCookie-Enumeration wird auf der Transportebene implementiert. Dies kann für die Simplex-Kommunikation verwendet werden, bei der vom Client eine ursprüngliche Anforderung gestellt und der Kontext in der entsprechenden Antwort des Diensts angegeben wird. Dieser Kontext ist dann für die Lebensdauer der Unterhaltung in allen nachfolgenden Nachrichten zwischen Dienst und Client enthalten. Für Dienstendpunkte, die einen HTTP-Transport verwenden, und Clients, die der Verwendung von HTTP-Cookies zustimmen, kann die HttpCookie-Enumeration zum Austauschen des Anwendungskontexts verwendet werden. Werden zum Weitergeben von Kontext HTTP-Cookies verwendet, sollten diese mithilfe der Transportsicherheit geschützt werden. Dieser Mechanismus kann bei Nicht-HTTP-Transporten nicht verwendet werden.

Die ContextSoapHeader-Enumeration stellt eine Alternative bereit, die in einem benutzerdefinierten Kontextkanal implementiert ist und mit Nicht-HTTP-Transporten und anderen Nachrichtenaustauschmustern wie Anforderung/Antwort und einer Duplexsitzung verwendet werden kann. Dieses Kontextaustauschprotokoll verfügt über eine SOAP-basierte Entsprechung der von HTTP-Cookies auf Transportebene bereitgestellten Funktion. Mit ihm wird ein neuer wsc:Context-SOAP-Header für die Kontextinformationen eingeführt. Das Argument dafür, den wsc:Context-Header während der Übertragung vor Manipulation zu schützen, ist dasselbe wie bei WS-Adressierungsheadern: Diese Header werden beim Empfang verwendet, um die Nachricht an die korrekten Workflowinstanzen zu verteilen. Deshalb muss der wsc:Context-Header entweder auf SOAP- oder auf Transportebene digital signiert werden, wenn für die Bindung ein Nachrichtenschutz verfügbar ist.

Der Kontext wird mithilfe von ContextMessageProperty von der Kanalebene an die Anwendungsebene (und umgekehrt) übermittelt.

Gilt für: