ContextExchangeMechanism ContextExchangeMechanism ContextExchangeMechanism ContextExchangeMechanism Enum

Определение

Задает механизм, используемый для обмена контекстом при взаимодействии между клиентом и службой: файл cookie HTTP или заголовок SOAP.Specifies whether an HTTP cookie or a SOAP header is the mechanism used to exchange context for a conversation between a client and service.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Наследование
ContextExchangeMechanismContextExchangeMechanismContextExchangeMechanismContextExchangeMechanism

Поля

ContextSoapHeader ContextSoapHeader ContextSoapHeader ContextSoapHeader 0

Для обмена контекстом используется заголовок SOAP.A SOAP header is used to exchange context. Это механизм обмена по умолчанию.This is the default exchange mechanism.

HttpCookie HttpCookie HttpCookie HttpCookie 1

Для обмена контекстом используется файл cookie HTTP.An HTTP cookie is used to exchange context.

Комментарии

Чтобы задать значение параметра ContextExchangeMechanism для взаимодействия между клиентом и службой, используйте свойство ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) или конструктор ContextExchangeMechanism.Use the ContextExchangeMechanism property or the ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) constructor to specify the value of the ContextExchangeMechanism for a conversation between a client and service.

Конечные точки службы, которым требуется поддержка протокола обмена контекстом, могут явно объявить это требование в своей опубликованной политике.Service endpoints that require support for the context exchange protocol can make this requirement explicit in their published policy. Утверждения политики, представляющие требование к клиенту, чтобы он поддерживал протокол обмена контекстом на уровне SOAP, или требующие включения поддержки файлов cookie HTTP, могут публиковаться конечной точкой.Policy assertions that represent the requirement for the client to support the context exchange protocol at the SOAP level or that require the enabling of HTTP cookie support can be published by an endpoint. Создание этих утверждений в политике службы управляется значением свойства ContextExchangeMechanism, как показано ниже.The generation of these assertions into the policy on the service is controlled by the value of the ContextExchangeMechanism property as follows:

  • Для HttpCookie создается следующее утверждение:For HttpCookie, the following assertion is generated:

    <HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>  
    
  • Для Контекстсоафеадер создается следующее утверждение:For ContextSoapHeader, the following assertion is generated:

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

Перечисление HttpCookie реализуется на транспортном уровне.The HttpCookie enumeration is implemented at the transport layer. Это можно использовать в случае симплексной связи, когда клиент отправляет исходный запрос, а контекст предоставляется службой в соответствующем ответе.This can be used in the case of simplex communication, where the client makes an initial request and the context is provided by the service on the corresponding reply. Все последующие сообщения, передаваемые между службой и клиентом в течение времени существования этого диалога, содержат данный контекст.All subsequent messages between the service and client for the lifetime of that conversation contain the context. Для конечных точек службы, использующих транспорт HTTP и клиентов, которые согласны разрешить использование файлов cookie HTTP, можно использовать Перечисление HttpCookie для обмена контекстом приложения.For service endpoints that use an HTTP transport and clients that agree to allow the use of HTTP cookies, the HttpCookie enumeration can be utilized to exchange the application context. Если для распространения контекста используются файлы cookie HTTP, они должны быть защищены с помощью системы безопасности транспорта.When HTTP cookies are used to propagate context, they should be protected using transport security. Этот механизм может использоваться только с транспортом HTTP.This mechanism cannot be used with non-HTTP transports.

Перечисление Контекстсоафеадер предоставляет альтернативу, который реализуется в пользовательском канале контекста и может использоваться с транспортами, отличными от HTTP, и другими шаблонами обмена сообщениями, такими как запрос-ответ и дуплексный сеанс.The ContextSoapHeader enumeration provides an alternative that is implemented in a custom context channel and that can be used with non-HTTP transports and other message exchange pattern, such as request-reply, and a duplex session. Этот протокол обмена контекстом обеспечивает основанный на SOAP эквивалент возможности, предлагаемой файлами cookie HTTP на транспортном уровне.This context exchange protocol provides a SOAP-based equivalent of the feature offered by HTTP cookies at the transport layer. В протоколе для представления контекстной информации вводится новый заголовок SOAP wsc:Context.It introduces a new wsc:Context SOAP header to represent the context information. Заголовок wsc:Context должен быть защищен от изменения во время передачи по тем же причинам, по которым требуется защита заголовков WS-Addressing: после получения эти заголовки используются для направления сообщений в правильные экземпляры рабочего процесса.The wsc:Context header must be protected from modification while in transit for the same reason as the WS-Addressing headers must be protected: upon arrival, these headers are used to dispatch the message to the correct workflow instances. Поэтому требуется, чтобы заголовок wsc:Context имел цифровую подпись на уровне SOAP или на транспортном уровне, если привязка обеспечивает возможность защиты сообщений.The wsc:Context header is therefore required to be digitally signed at either SOAP or transport level when the binding offers message protection capability.

Уровень канала передает контекст на уровень приложения и с уровня приложения с помощью ContextMessageProperty.The channel layer communicates the context to and from the application layer using ContextMessageProperty.

Применяется к