ContextExchangeMechanism Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Especifica si el mecanismo utilizado para intercambiar contexto, en una conversación entre un cliente y servicio, es una cookie HTTP o un encabezado SOAP.
public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism =
Public Enum ContextExchangeMechanism
- Herencia
Campos
ContextSoapHeader | 0 | Se utiliza un encabezado SOAP para el intercambio de contexto. Éste es el mecanismo de intercambio predeterminado. |
HttpCookie | 1 | Se utiliza una cookie HTTP para el intercambio de contexto. |
Comentarios
Utilice la propiedad ContextExchangeMechanism, o el constructor ContextBindingElement(ProtectionLevel, ContextExchangeMechanism), para especificar el valor de ContextExchangeMechanism para una conversación entre un cliente y servicio.
Los extremos del servicio que requieren compatibilidad con el protocolo de intercambio de contexto pueden explicitar este requisito en su directiva publicada. Un extremo puede publicar las aserciones de directiva, que representan el requisito para que el cliente admita el protocolo de intercambio de contexto, en el nivel de SOAP, o que requieran la compatibilidad con la cookie HTTP. La generación de estas aserciones dentro de la directiva en el servicio está controlada por el valor de la propiedad ContextExchangeMechanism, como se muestra a continuación:
Para HttpCookie, se genera la siguiente aserción:
<HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>
Para ContextSoapHeader, se genera la siguiente aserción:
<IncludeContext xmlns="http://schemas.microsoft.com/ws/2006/05/context" protectionLevel="Sign" />
La enumeración HttpCookie se implementa en la capa de transporte. Esto puede utilizarse en caso de comunicación símplex, en la que el cliente realiza una solicitud inicial y el servicio proporciona el contexto en la respuesta correspondiente. Todos los mensajes posteriores entre el servicio y el cliente en la duración de esa conversación contienen el contexto. En el caso de los puntos de conexión de servicio que usan un transporte HTTP y los clientes que aceptan permitir el uso de cookies HTTP, la enumeración HttpCookie se puede utilizar para intercambiar el contexto de la aplicación. Cuando se utilizan cookies HTTP para propagar contexto, deben protegerse utilizando la seguridad de transporte. Este mecanismo no puede utilizarse con transportes que no sean HTTP.
La enumeración ContextSoapHeader proporciona una alternativa que se implementa en un canal de contexto personalizado y que se puede usar con transportes no HTTP y otro patrón de intercambio de mensajes, como solicitud-respuesta y una sesión dúplex. Este protocolo de intercambio de contexto proporciona un equivalente basado en SOAP de la característica proporcionada por las cookies HTTP en el nivel de transporte. Introduce un nuevo encabezado SOAP wsc:Context
para representar la información de contexto. Mientras se encuentre en tránsito, el encabezado wsc:Context
debe protegerse de la modificación por la misma razón por la que deben protegerse los encabezados de WS-Addressing: cuando llegan, estos encabezados se utilizan para enviar el mensaje a las instancias de flujo de trabajo correctas. Por lo tanto, se exige la firma digital del encabezado wsc:Context
en el nivel SOAP o de transporte, cuando el enlace ofrece la función de protección del mensaje.
La capa del canal comunica el contexto a y desde el nivel de aplicación mediante ContextMessageProperty.