次の方法で共有


方法 : WCF ロール サービスを有効にする

更新 : 2007 年 11 月

ここでは、Windows Communication Foundation (WCF) を使用するクライアントが利用できるように Web サーバー上で ASP.NET ロール サービスを構成する方法について説明します。

Bb398911.alert_note(ja-jp,VS.90).gifメモ :

ロール名が悪意のあるユーザーに使用されて重要情報が公開されるおそれがある場合や、ロール名が永続的な Cookie に保存されている場合は、HTTPS プロトコルを使用して SSL (Secure Sockets Layer) 経由でロール サービスにアクセスします。SSL を設定する方法の詳細については、Microsoft Web サイトの「SSL (Secure Sockets Layer) を構成する (IIS 6.0 操作ガイド)」および「Configuring Secure Sockets Layer in IIS 7.0」を参照してください。

ASP.NET ロール サービスを WCF サービスとして構成するには

  1. ASP.NET Web アプリケーションがまだない場合は作成します。

  2. Web アプリケーションでフォーム認証を有効にします。詳細については、「ASP.NET アプリケーションの設定によるメンバシップの使用」を参照してください。

  3. Web アプリケーションでロールを有効にします。詳細については、「ロール管理について」を参照してください。

  4. ユーザーが Web アプリケーションにログインする方法を指定します。

    WCF ロール サービスを通じてロールを取得する場合は、WCF 認証サービスを通じてユーザーをログインさせることもできます。WCF 認証サービスを設定する方法については、「方法 : WCF 認証サービスを有効にする」を参照してください。

  5. RoleService クラスを参照する次のディレクティブを含んだサービス ファイル (.svc) を Web サイトに追加します。

    <%@ ServiceHost 
      Language="VB"
      Service="System.Web.ApplicationServices.RoleService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    <%@ ServiceHost 
      Language="C#"
      Service="System.Web.ApplicationServices.RoleService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    
  6. .svc ファイルを保存して閉じます。

  7. Web.config ファイルで次の構成設定を行うことで、サービスを構成し、SSL を要求します。

    • roleService 要素でロール サービスを有効にします。

    • services 要素でエンドポイント コントラクトを定義し、behaviors 要素でサービスの動作を定義します。プロキシ生成ツールで例外が発生しないように、エンドポイント コントラクトに bindingNamespace プロパティを組み込みます。WCF エンドポイントの詳細については、「Windows Communication Foundation エンドポイント」を参照してください。

    • ASP.NET との互換性のために、serviceHostingEnvironment 要素を構成します。WCF サービスをホストする方法の詳細については、「WCF サービスと ASP.NET」を参照してください。

    • bindings 要素で、SSL を必要とするバインディングを作成します。WCF でのトランスポート セキュリティの詳細については、「トランスポート セキュリティ」を参照してください。

    前の一覧で説明した構成設定を示す Web.config ファイルの system.serviceModel 要素の例を次に示します。

    <system.web.extensions>
      <scripting>
        <webServices>
          <roleService enabled="true"/>
        </webServices>
      </scripting>
    </system.web.extensions>
    <system.serviceModel>
      <services>
        <service name="System.Web.ApplicationServices.RoleService"
            behaviorConfiguration="ApplicationServiceTypeBehaviors">
          <endpoint contract=
            "System.Web.ApplicationServices.RoleService"
            binding="basicHttpBinding"
            bindingConfiguration="userHttps" 
            bindingNamespace="https://asp.net/ApplicationServices/v200"/>
        </service>
      </services>
      <bindings>
    <basicHttpBinding>
    <binding name="userHttps">
    <security mode="Transport" />
    </binding>
    </basicHttpBinding>
    </bindings>
      <behaviors>
        <serviceBehaviors>
          <behavior name="ApplicationServiceTypeBehaviors">
            <serviceMetadata httpGetEnabled="true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <serviceHostingEnvironment
        aspNetCompatibilityEnabled="true"/>
    </system.serviceModel>
    

セキュリティ

重要なユーザー情報を操作する場合は、HTTPS プロトコルを使用した SSL 経由で認証サービスにアクセスします。SSL を設定する方法の詳細については、Microsoft Web サイトの「SSL (Secure Sockets Layer) を構成する (IIS 6.0 操作ガイド)」および「Configuring Secure Sockets Layer in IIS 7.0」を参照してください。

参照

処理手順

チュートリアル : ASP.NET アプリケーション サービスの使用

概念

Windows Communication Foundation のロール サービスの概要

その他の技術情報

サービスの構成