Partager via


ContextExchangeMechanism Énumération

Définition

Indique si le mécanisme utilisé pour échanger le contexte d'une conversation entre un client et un service sera un cookie HTTP ou un en-tête SOAP.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Héritage
ContextExchangeMechanism

Champs

ContextSoapHeader 0

Un en-tête SOAP est utilisé pour échanger le contexte. Il s'agit du mécanisme d'échange par défaut.

HttpCookie 1

Un cookie HTTP est utilisé pour échanger le contexte.

Remarques

Utilisez la propriété ContextExchangeMechanism ou le constructeur ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) pour spécifier la valeur du ContextExchangeMechanism correspondant à une conversation entre un client et service.

Les points de terminaison de service qui requièrent la prise en charge du protocole d'échange de contexte peuvent rendre cette demande explicite dans leur stratégie publiée. Un point de terminaison est capable de publier des assertions de stratégie qui représentent la demande de prise en charge du protocole d'échange de contexte par le client au niveau du SOAP ou qui requièrent l'activation de la prise en charge des cookies HTTP. La génération de ces assertions dans la stratégie sur le service est contrôlée par la valeur de la propriété ContextExchangeMechanism de la façon suivante :

  • Pour HttpCookie, l’assertion suivante est générée :

    <HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>  
    
  • Pour ContextSoapHeader, l’assertion suivante est générée :

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

L’énumération HttpCookie est implémentée au niveau de la couche de transport. Cette opération peut être utilisée dans le cadre d'une communication simplex, où le client effectue une demande initiale et où le contexte est indiqué par le service dans la réponse correspondante. Tous les messages échangés ensuite entre le service et le client jusqu'à la fin de la conversation contiennent ce contexte. Pour les points de terminaison de service qui utilisent un transport HTTP et les clients qui acceptent d’autoriser l’utilisation de cookies HTTP, l’énumération HttpCookie peut être utilisée pour échanger le contexte de l’application. Lorsque les cookies HTTP sont utilisés pour propager le contexte, ils doivent être protégés à l'aide de la sécurité de transport. Ce mécanisme ne peut pas être utilisé avec les transports non-HTTP.

L’énumération ContextSoapHeader fournit une alternative qui est implémentée dans un canal de contexte personnalisé et qui peut être utilisée avec des transports non-HTTP et d’autres modèles d’échange de messages, comme requête-réponse et une session duplex. Ce protocole d’échange de contexte fournit un équivalent (basé sur SOAP) de la fonctionnalité que les cookies HTTP offrent à la couche de transport. Il introduit un nouvel en-tête SOAP wsc:Context afin de représenter les informations de contexte. Cet en-tête wsc:Context doit être protégé de toute modification lors de son transfert pour la même raison que les en-têtes WS-Addressing : lorsqu'ils arrivent à destination, ce sont eux qui distribuent le message aux instances de workflow correctes. L'en-tête wsc:Context est donc requis pour être signé numériquement soit au niveau SOAP, soit au niveau du transport, lorsque la liaison assure une fonction de protection des messages.

La couche du canal communique le contexte à partir de la couche d'application ou vers cette dernière en utilisant ContextMessageProperty.

S’applique à