方法 : カスタムの信頼できるセッションによる HTTPS を使用したバインディングを作成する

ここでは、信頼できるセッションを使用した SSL (Secure Sockets Layer) トランスポート セキュリティの使用方法について説明します。HTTPS 上で信頼できるセッションを使用するには、信頼できるセッションと HTTPS トランスポートを使用するカスタム バインディングを作成する必要があります。信頼できるセッションを有効にするには、コードを使用して強制的に行うか、構成ファイルで宣言します。この手順では、クライアントとサービスの構成ファイルを使用して、信頼できるセッションと <httpsTransport> 要素を有効にします。

この手順で重要なのは、endpoint 構成要素に "reliableSessionOverHttps" という名前のカスタム バインディング構成を参照する bindingConfiguration 属性が含まれていることです。その後、<binding> 構成要素は、この名前を参照して、reliableSession 要素と httpsTransport 要素を含めることにより、信頼できるセッションと HTTPS トランスポートの使用を指定できます。

この例のソースのコピーについては、「Custom Binding Reliable Session over HTTPS」を参照してください。

HTTPS で信頼できるセッションを使用するためにサービスを CustomBinding で構成するには

  1. サービスの種類にサービス コントラクトを定義します。

  2. サービス クラスにサービス コントラクトを実装します。アドレス情報とバインディング情報はサービスの実装内では指定されないことに注意してください。同様に、コードは構成ファイルから情報を取得する必要はありません。

  3. Web.config ファイルを作成し、信頼できるセッションと HTTPS トランスポートを使用する "reliableSessionOverHttps" というカスタムバインディングを使用して、CalculatorService のエンドポイントを構成します。

  4. 次の行を含む Service.svc ファイルを作成します。

    <%@ServiceHost language=c# Service="CalculatorService" %> 
    
  5. インターネット インフォメーション サービス (IIS) 仮想ディレクトリに Service.svc ファイルを配置します。

HTTPS で信頼できるセッションを使用するためにクライアントを CustomBinding で構成するには

  1. コマンド ラインから ServiceModel Metadata Utility Tool (Svcutil.exe) を実行して、サービス メタデータからコードを生成します。

    Svcutil.exe <service's Metadata Exchange (MEX) address or HTTP GET address> 
    
  2. 生成されたクライアントには、クライアントの実装時に満たされなければならないサービス コントラクトを定義する ICalculator インターフェイスが含まれます。

  3. 生成されたクライアント アプリケーションは ClientCalculator も実装します。このサービスの実装では、アドレス情報とバインディング情報が指定されないことに注意してください。また、構成ファイルからこの情報を取得するためのコードを記述する必要もありません。

  4. HTTPS トランスポートと信頼できるセッションを使用する "reliableSessionOverHttps" という名前のカスタム バインディングを構成します。

  5. アプリケーションで ClientCalculator のインスタンスを作成し、サービス操作を呼び出します。

  6. クライアントをコンパイルして実行します。

セキュリティ

このサンプルで使用する証明書は Makecert.exe で作成されたテスト証明書なので、ブラウザで https://localhost/servicemodelsamples/service.svc のような HTTPS アドレスにアクセスしようとするとセキュリティ警告が表示されます。

関連項目

その他の技術情報

信頼できるセッション