ContextExchangeMechanism 列挙型

定義

クライアントとサービス間のメッセージ交換についてコンテキストを交換するための機構として HTTP クッキーを使用するか、SOAP ヘッダーを使用するかを指定します。

public enum class ContextExchangeMechanism
public enum ContextExchangeMechanism
type ContextExchangeMechanism = 
Public Enum ContextExchangeMechanism
継承
ContextExchangeMechanism

フィールド

ContextSoapHeader 0

SOAP ヘッダーを使用してコンテキストをやり取りします。 これは既定の交換機構です。

HttpCookie 1

HTTP クッキーを使用してコンテキストをやり取りします。

注釈

クライアントとサービス間のメッセージ交換について ContextExchangeMechanism の値を指定するには、ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) プロパティまたは ContextExchangeMechanism コンストラクターを使用します。

サービス エンドポイントでコンテキスト交換プロトコルのサポートを必要とする場合は、公開されたポリシーにこの条件を明示できます。 SOAP レベルでコンテキスト交換プロトコルをサポートするためのクライアント条件を表しているポリシー アサーションや、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 トランスポートを使用するサービス エンドポイントと、HTTP Cookie の使用を許可することに同意するクライアントの場合は、HttpCookie 列挙を使用してアプリケーション コンテキストを交換できます。 HTTP クッキーを使用してコンテキストを伝達する場合は、トランスポート セキュリティを使用して保護する必要があります。 この機構は HTTP 以外のトランスポートで使用することはできません。

ContextSoapHeader 列挙は、カスタム コンテキスト チャネルに実装され、HTTP 以外のトランスポートや、要求/応答、双方向セッションなどの他のメッセージ交換パターンで使用できる代替手段を提供します。 このコンテキスト交換プロトコルでは、HTTP クッキーの機能に相当する SOAP ベースの機能がトランスポート層で提供されています。 このプロトコルには、コンテキスト情報を表すための新しい wsc:Context SOAP ヘッダーが導入されています。 wsc:Context ヘッダーは、WS-Addressing ヘッダーを保護しなければならないのと同じ理由から、送信中に変更されないように保護する必要があります。着信時、これらのヘッダーを使用して正しいワークフロー インスタンスにメッセージがディスパッチされます。 したがって、バインドにメッセージ保護機能がある場合は、SOAP レベルまたはトランスポート レベルで wsc:Context ヘッダーにデジタル署名を適用する必要があります。

チャネル レイヤーでは、ContextMessageProperty を使用して、アプリケーション層とコンテキストを送受信します。

適用対象