Condividi tramite


ContextExchangeMechanism Enumerazione

Definizione

Specifica se un cookie HTTP o un'intestazione SOAP è il meccanismo utilizzato per lo scambio del contesto per una conversazione tra un client e un servizio.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Ereditarietà
ContextExchangeMechanism

Campi

ContextSoapHeader 0

Un'intestazione SOAP viene utilizzata per lo scambio del contesto. Questo è il meccanismo di scambio predefinito.

HttpCookie 1

Un cookie HTTP viene utilizzato per lo scambio del contesto.

Commenti

Utilizzare la proprietà ContextExchangeMechanism o il costruttore ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) per specificare il valore di ContextExchangeMechanism per una conversazione tra un client e un servizio.

Gli endpoint del servizio che richiedono il supporto per il protocollo di scambio del contesto possono rendere esplicito questo requisito nel criterio pubblicato. Le asserzioni di criteri che rappresentano il requisito che il client supporti il protocollo di scambio del contesto a livello di SOAP o che richiedono l'abilitazione del supporto di cookie HTTP, possono essere pubblicate da un endpoint. La generazione di queste asserzioni all'interno dei criteri nel servizio è controllata dal valore della proprietà ContextExchangeMechanism come segue:

  • Per HttpCookie, viene generata l'asserzione seguente:

    <HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>  
    
  • Per ContextSoapHeader, viene generata l'asserzione seguente:

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

L'enumerazione HttpCookie viene implementata a livello di trasporto. Questa può essere utilizzata nel caso di comunicazione simplex, in cui il client effettua una richiesta iniziale e il contesto viene fornito dal servizio sulla risposta corrispondente. Tutti i messaggi successivi tra il servizio e client per la durata di quella conversazione contengono il contesto. Per gli endpoint di servizio che usano un trasporto HTTP e i client che accettano di consentire l'uso dei cookie HTTP, l'enumerazione HttpCookie può essere usata per scambiare il contesto dell'applicazione. Quando i cookie HTTP sono utilizzati per propagare il contesto, devono essere protetti utilizzando sicurezza del trasporto. Questo meccanismo non può essere utilizzato con trasporti diversi da HTTP.

L'enumerazione ContextSoapHeader offre un'alternativa implementata in un canale di contesto personalizzato e che può essere usata con trasporti non HTTP e altri modelli di scambio di messaggi, ad esempio request-reply e una sessione duplex. Questo protocollo di scambio del contesto fornisce un equivalente basato su SOAP della funzionalità offerta dai cookie HTTP a livello di trasporto. Introduce una nuova intestazione SOAP wsc:Context per rappresentare le informazioni di contesto. L'intestazione wsc:Context deve essere protetta dalle modifiche mentre è in transito, per la stessa ragione per cui devono essere protette le intestazioni WS-Addressing: all'arrivo queste intestazioni vengono utilizzate per inviare il messaggio alle istanze del flusso di lavoro corrette. È pertanto necessario che l'intestazione wsc:Context sia firmata digitalmente a livello SOAP o di trasporto quando l'associazione offre funzionalità di protezione dei messaggi.

Il livello del canale comunica il contesto da e verso il livello dell'applicazione utilizzando ContextMessageProperty.

Si applica a