Поделиться через


ContextExchangeMechanism Перечисление

Определение

Задает механизм, используемый для обмена контекстом при взаимодействии между клиентом и службой: файл cookie HTTP или заголовок SOAP.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Наследование
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.

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