Share via


SOAP セッションの使用

既存のセッションのコンテキスト内で SOAP 要求を実行するには、サーバーへの SOAP セッション要求の一部として次の項目を指定する必要があります。

  • 以前にサーバーからクライアントに提供されたものと同じセッション ID。
  • 以前に SOAP セッションが開始されたエンドポイントに対応する HTTP エンドポイント ID。
  • 同じユーザー コンテキスト。これは、エンドポイントの SOAP プロパティでサポートされる LOGIN_TYPE に応じて、Windows ユーザーまたは SQL Server ユーザーのいずれかになります。

指定したセッション ID が存在しないか、形式が正しくない場合は、terminate 属性を含むヘッダーの sqlSession 要素により SOAP エラー メッセージが返されます。それ以外の場合は、サーバーはクライアントが要求で送信したものと同じ sqlSession ヘッダーをエコー バックすることにより応答します。

セッションを開始したセキュリティ コンテキストやエンドポイントとは異なるもので要求が実行された場合、SOAP エラーが返されます。エラーの場合の応答では、SOAP 層終了の SOAP エラー コードが示され、sqlSession ヘッダーの terminate 属性には true 値が設定されます。

また、悪意のあるユーザーがセッションの存在を判断できないように、terminate 属性が設定され、サーバーにとって参加が不明であると特定されたセッション内のすべての要求に対する唯一の応答メッセージとして、サーバーから SOAP エラーが返されます。

次に、SOAP セッションに参加する例を示します。既存の SOAP セッションに参加することを要求するときに、クライアントから送信される SOAP メッセージの形式を示します。実際の sessionId 値は、セッション固有の識別子になります。

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session -->
    <sqloptions:sqlSession sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

サーバーでは、セッションにアクセスできることを示す場合はクライアントにメッセージをエコー バックします。また、要求で識別されたセッションにアクセスできないことを示す場合はクライアントに SOAP エラーを返します。

参照

関連項目

SOAP セッションの終了
ネイティブ XML Web サービス要求を送信する場合のサンプル アプリケーション
クライアント アプリケーションへの SOAP ヘッダーの追加

概念

SOAP セッションの開始

その他の技術情報

SOAP セッションを使用した作業

ヘルプおよび情報

SQL Server 2005 の参考資料の入手