特集
 | 
 
            
 
  | 
WSDKを使ったセキュアXML Webサービスのクライアントの実装
WS-SecurityはSOAPの拡張であるため、ASP.NETが持っているHTTP-GETやHTTP-POSTによるXML Webサービスへのアクセス機能を使っても機能しない。機能させるためには、SOAPでアクセスする必要がある。SOAPでアクセスするには、コンソールやWindowsアプリケーションを開発して、「Web参照」機能を利用するのが簡単だ。ここではコンソール・アプリケーションを作成する。
 コンソール・アプリケーションのプロジェクトを作成する
ここでは名前を「WSDKClient1」にした。
 プロジェクトにMicrosoft.WSDK.dllへの参照を追加する
VS.NETの「参照の追加」機能で追加すればよい。
 Web参照の追加を行う
http://localhost/WSDK1/Service1.asmx?wsdlに対してWeb参照を追加する。
 作成されたプロキシ・クラスのソース・コードを変更する
プロキシ・クラスのソース・コードは、Reference.csという名前で「Web References」の中の「localhost」の下にある。表示されない場合は、VS.NETのソリューション・エクスプローラで「すべてのファイルを表示」ボタンをクリックする。
変更内容は、プロキシ・クラス「WSDKClient1.localhost.Service1」の基底クラスを、
System.Web.Services.Protocols.SoapHttpClientProtocol
から、
Microsoft.WSDK.WSDKClientProtocol
にすることだけだ。
  | 
|
| 自動生成されるプロキシ・クラスの基底クラスを、Microsoft.WSDK.WSDKClientProtocolに変更する | 
 Mainメソッドを実装する
このメソッドの中でユーザー名とパスワードを設定する。内容は次のとおりだ。
  | 
|
| クライアントとなるコンソール・アプリケーションのコード | |
| ここでは、XML Webサービスの認証に必要なユーザー名とパスワードを設定し、XML Webサービスを呼び出す。 | 
通常のWeb参照を利用したクライアント・コードと違うのは、太字の部分だけだ。
これでクライアントの開発もできた。さっそく実行してみよう。うまくいけば、コンソールには「Davolio」が表示されるはずだ。もちろん、「user1、pass1」は適切なSQL Serverのユーザーのものに置き換えなければならない。
このとき、クライアントとサーバの間では次のようなSOAPメッセージがやりとりされている。
![]()  | 
| クライアントからサーバへ送信されるSOAPメッセージ例(IEで表示) | 
![]()  | 
| サーバからクライアントへ送信されるSOAPメッセージ例(IEで表示) | 
クライアントから送信されているSOAPメッセージのHeader要素に注目してほしい。指定したユーザー名とパスワードが含まれているのが分かる。もちろんこのようにクリア・テキストでパスワードを送信することは通常は考えられないので、何らかの手順で暗号化を行うことになるだろう。WSDKにもその機能が含まれているが、ここでは分かりやすくするためにクリア・テキストのままとした。
このように、WSDKを使えばWS-Securityに対応したセキュアXML Webサービスを容易に開発することができるのだ。
| INDEX | ||
| [特集]次世代XML Webサービスを試す Part 1 | ||
| 1.WSDKのインストール | ||
| 2.WSDKを使ったセキュア XML Webサービスの実装 | ||
| 3.セキュアXML Webサービスのクライアントの実装 | ||
| 4.ほかのWS-Security実装との相互運用(1) | ||
| 5.ほかのWS-Security実装との相互運用(2) | ||
| 「特集:次世代XML Webサービスを試す」 | 
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える 
 
  | 
 |







