ContextExchangeMechanism 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定 HTTP Cookie 或 SOAP 标头是否是交换客户端和服务之间对话的上下文所用的机制。
public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism =
Public Enum ContextExchangeMechanism
- 继承
字段
名称 | 值 | 说明 |
---|---|---|
ContextSoapHeader | 0 | 使用 SOAP 标头来交换上下文。 这是默认的交换机制。 |
HttpCookie | 1 | 使用 HTTP Cookie 来交换上下文。 |
注解
使用 ContextExchangeMechanism 属性或 ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) 构造函数可以为客户端和服务之间的对话指定 ContextExchangeMechanism 值。
要求支持上下文交换协议的服务终结点可以在其发布的策略中明确此要求。 表示要求客户端支持 SOAP 级上下文交换协议或表示要求启用 HTTP Cookie 支持的策略断言可以由终结点发布。 如何将这些断言生成到服务策略中是由 ContextExchangeMechanism 属性的值控制的,如下所示:
对于 HttpCookie,将生成以下断言:
<HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>
对于 ContextSoapHeader,将生成以下断言:
<IncludeContext xmlns="http://schemas.microsoft.com/ws/2006/05/context" protectionLevel="Sign" />
HttpCookie 枚举在传输层实现。 在客户端发出初始请求,然后由服务在响应答复时提供上下文的单工通信情况下,可以使用此枚举。 在该对话的生存期内,客户端和服务之间的所有后续消息都将包含此上下文。 对于使用 HTTP 传输的服务终结点以及同意允许使用 HTTP Cookie 的客户端,可以使用 HttpCookie 枚举来交换应用程序上下文。 当使用 HTTP Cookie 来传播上下文时,应使用传输安全来保护 HTTP Cookie。 此机制不能与非 HTTP 传输一起使用。
ContextSoapHeader 枚举提供了在自定义上下文通道中实现的替代方法,该替代项可用于非 HTTP 传输和其他消息交换模式,例如请求-答复和双工会话。 此上下文交换协议提供一种基于 SOAP 的功能,它等效于 HTTP Cookie 在传输层提供的功能。 它引入了新的 wsc:Context
SOAP 标头来表示上下文信息。 和必须保护 WS-Addressing 标头一样,在传输过程中必须保护 wsc:Context
标头不被修改:到达后,这些标头用于将消息调度到正确的工作流实例。 因此,当绑定提供消息保护功能时,wsc:Context
标头必需在 SOAP 或传输级进行数字签名。
通道层使用 ContextMessageProperty 与应用程序层之间来回传递上下文。