ContextExchangeMechanism Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает механизм, используемый для обмена контекстом при взаимодействии между клиентом и службой: файл cookie HTTP или заголовок SOAP.
public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism =
Public Enum ContextExchangeMechanism
- Наследование
Поля
ContextSoapHeader | 0 | Для обмена контекстом используется заголовок SOAP. Это механизм обмена по умолчанию. |
HttpCookie | 1 | Для обмена контекстом используется файл cookie HTTP. |
Комментарии
Чтобы задать значение параметра ContextExchangeMechanism для взаимодействия между клиентом и службой, используйте свойство ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) или конструктор ContextExchangeMechanism.
Конечные точки службы, которым требуется поддержка протокола обмена контекстом, могут явно объявить это требование в своей опубликованной политике. Утверждения политики, представляющие требование к клиенту, чтобы он поддерживал протокол обмена контекстом на уровне SOAP, или требующие включения поддержки файлов cookie HTTP, могут публиковаться конечной точкой. Создание этих утверждений в политике службы управляется значением свойства 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, и клиентов, которые соглашаются разрешить использование файлов cookie HTTP, перечисление HttpCookie можно использовать для обмена контекстом приложения. Если для распространения контекста используются файлы cookie HTTP, они должны быть защищены с помощью системы безопасности транспорта. Этот механизм может использоваться только с транспортом HTTP.
Перечисление ContextSoapHeader предоставляет альтернативу, реализованную в пользовательском канале контекста и которая может использоваться с транспортами, отличными от HTTP, и другими шаблонами обмена сообщениями, такими как запрос-ответ и дуплексный сеанс. Этот протокол обмена контекстом обеспечивает основанный на SOAP эквивалент возможности, предлагаемой файлами cookie HTTP на транспортном уровне. В протоколе для представления контекстной информации вводится новый заголовок SOAP wsc:Context
. Заголовок wsc:Context
должен быть защищен от изменения во время передачи по тем же причинам, по которым требуется защита заголовков WS-Addressing: после получения эти заголовки используются для направления сообщений в правильные экземпляры рабочего процесса. Поэтому требуется, чтобы заголовок wsc:Context
имел цифровую подпись на уровне SOAP или на транспортном уровне, если привязка обеспечивает возможность защиты сообщений.
Уровень канала передает контекст на уровень приложения и с уровня приложения с помощью ContextMessageProperty.