クライアント アプリケーションへの SOAP ヘッダーの追加
SQL Server 2005 では、ネイティブ XML Web サービスを使用しているときに、SOAP 拡張ヘッダーがサポートされます。これらの SOAP 拡張ヘッダーを、SOAP セッションや Web Services Security (WS-Security) など、サポートされる SQL オプションや他の SOAP 拡張ヘッダーと併用して、SOAP ベースのアプリケーションを拡張および強化できます。詳細については、「SOAP 拡張ヘッダー」を参照してください。
このトピックでは、SQL Server 2005 でサポートされる、省略可能な各 SOAP 拡張ヘッダーが実装されているサンプル クラス ライブラリについて説明します。このライブラリは、既存の Visual Studio 2005 SOAP クライアント プロジェクトに追加できます。このライブラリには、「ネイティブ XML Web サービス要求を送信する場合のサンプル アプリケーション」に記載されているサンプル アプリケーションが含まれます。
- 「ネイティブ XML Web サービス要求をリッスンするためのサーバーの設定」および「クライアント アプリケーションの作成」に記載されている概念や手順について詳しく理解しておくことをお勧めします。
また、セキュリティやセッション サポートに適切な SOAP 拡張ヘッダーを使用して、これらの機能のいずれかを実装するヘッダーを扱っている場合は、次のトピックを参照することをお勧めします。
メモ : |
---|
次の手順は、「Visual Studio 2005 クライアントを使用した SOAP 要求の送信 (C#)」で示すように、Visual Studio 2005 を使用して既存の SOAP クライアント アプリケーションを作成し、SQL Server 2005 を使用して作成した HTTP SOAP エンドポイントへの Web 参照を追加していることを前提としています。 |
Visual Studio プロジェクトに SOAP 拡張ヘッダー サンプル ライブラリを追加するには
「SQL SOAP ヘッダー サンプル クラス ライブラリの C# コード リスト」の内容をコピーしてメモ帳に貼り付け、"SqlSoapHeader.cs" という名前を付けて SOAP クライアント プロジェクト ファイルを含むフォルダと同じフォルダに保存します。
クライアント コンピュータで、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft Visual Studio 2005] から Microsoft Visual Studio 2005 を起動します。
[プロジェクトを開く] をクリックします。
SOAP クライアント プロジェクト (.csproj) ファイルを参照し、選択します。
ソリューション エクスプローラで、次の手順を実行します。
- 名前でプロジェクトを選択し、選択したプロジェクトを右クリックします。次に、[追加] をポイントして [既存の項目の追加] をクリックします。
- [既存の項目の追加] ダイアログ ボックスで、手順 1. で SqlSoapHeader.cs ファイルを保存した場所を参照し、ファイルを選択します。
- [すべてのファイルを表示] をクリックし、[Web 参照] ノードを展開して、Reference.cs ファイルを選択します。
コード エディタで、Reference.cs ファイルを更新して、パブリック変数をエンドポイント定義クラスに追加します。変数は、省略可能な SOAP ヘッダーの型と同じ SqlSoapHeader クラスに含める必要があります。
たとえば、エンドポイント クラス定義 ("sql_endpoint") の下にある Reference.cs ファイルに SqlSoapHeader.Security クラスの "sqlSecurity" というパブリック プロパティ変数を追加するには、次のコード行を追加します。
public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol { public SqlSoapHeader.Security sqlSecurity
SOAP ヘッダーを有効にする Web メソッドに、適切な SoapHeaderAttribute プロパティを追加します。
たとえば、Security クラスを実装している場合、次のコード行を追加します。
[System.Web.Services.Protocols.SoapHeaderAttribute("sqlSecurity")] public int UDFReturningAScalar() {...}
メモ : この例では、 SoapHeaderAttribute
で使用される引数の値sqlSecurity
は、前の手順で使用された変数名に対応している必要があります。
参照
関連項目
ネイティブ XML Web サービス要求をリッスンするためのサーバーの設定