Compartilhar via


ContextExchangeMechanism Enumeração

Definição

Especifica se um cookie HTTP ou um cabeçalho SOAP é o mecanismo usado para a troca de contexto de uma conversa entre um cliente e serviço.

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
Herança
ContextExchangeMechanism

Campos

Nome Valor Description
ContextSoapHeader 0

Um cabeçalho SOAP é usado para a troca de contexto. Esse é o mecanismo de troca padrão.

HttpCookie 1

Um cookie HTTP é usado para a troca de contexto.

Comentários

Use a ContextExchangeMechanism propriedade ou o ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) construtor para especificar o valor do ContextExchangeMechanism para uma conversa entre um cliente e um serviço.

Os pontos de extremidade de serviço que exigem suporte para o protocolo de troca de contexto podem tornar esse requisito explícito em sua política publicada. As declarações de política que representam o requisito para o cliente dar suporte ao protocolo de troca de contexto no nível SOAP ou que exigem a habilitação do suporte a cookie HTTP podem ser publicadas por um ponto de extremidade. A geração dessas declarações na política no serviço é controlada pelo valor da propriedade da ContextExchangeMechanism seguinte maneira:

  • Para HttpCookie, a seguinte asserção é gerada:

    <HttpUseCookie xmlns="http://schemas.xmlsoap.org/soap/http"/>  
    
  • Para ContextSoapHeader, a seguinte asserção é gerada:

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

A enumeração HttpCookie é implementada na camada de transporte. Isso pode ser usado no caso da comunicação simplex, em que o cliente faz uma solicitação inicial e o contexto é fornecido pelo serviço na resposta correspondente. Todas as mensagens subsequentes entre o serviço e o cliente durante o tempo de vida dessa conversa contêm o contexto. Para pontos de extremidade de serviço que usam um transporte HTTP e clientes que concordam em permitir o uso de cookies HTTP, a enumeração HttpCookie pode ser utilizada para trocar o contexto do aplicativo. Quando cookies HTTP são usados para propagar contexto, eles devem ser protegidos usando a segurança do transporte. Esse mecanismo não pode ser usado com transportes não HTTP.

A enumeração ContextSoapHeader fornece uma alternativa implementada em um canal de contexto personalizado e que pode ser usada com transportes não HTTP e outros padrões de troca de mensagens, como solicitação-resposta e uma sessão duplex. Esse protocolo de troca de contexto fornece um equivalente baseado em SOAP do recurso oferecido por cookies HTTP na camada de transporte. Ele apresenta um novo wsc:Context cabeçalho SOAP para representar as informações de contexto. O wsc:Context cabeçalho deve ser protegido contra modificação enquanto estiver em trânsito pelo mesmo motivo que os cabeçalhos WS-Addressing devem ser protegidos: na chegada, esses cabeçalhos são usados para expedir a mensagem para as instâncias de fluxo de trabalho corretas. Portanto wsc:Context , o cabeçalho é necessário para ser assinado digitalmente no nível soap ou de transporte quando a associação oferece capacidade de proteção de mensagem.

A camada de canal comunica o contexto de e para a camada de aplicativo usando ContextMessageProperty.

Aplica-se a