方法: ASP.NET のロール プロバイダーとサービスを使用する

ASP.NET ロール プロバイダーを ASP.NET メンバーシップ プロバイダーと共に使用すると、ASP.NET 開発者は、サイトで使用するアカウントをユーザーが作成し、承認のためにユーザーにロールを割り当てることができる Web サイトを作成できます。 この機能を使用すれば、ユーザーはだれでもサイトでアカウントを作成し、そのサイトにログインしてサービスに排他的にアクセスできます。 これは、ユーザーが Windows ドメイン内にアカウントを持っていることが必要な Windows セキュリティとは対照的です。 自分の資格情報 (ユーザー名とパスワードの組み合わせ) を提示したユーザーは、だれでもサイトとそのサービスを使用できます。

サンプル アプリケーションについては、「メンバーシップとロール プロバイダー」を参照してください。 ASP.NET メンバーシップ プロバイダーの機能の詳細については、「方法: ASP.NET メンバーシップ プロバイダーを使用する」を参照してください。

ロール プロバイダー機能では、SQL Server データベースを使用してユーザー情報を格納します。 Windows Communication Foundation (WCF) 開発者は、セキュリティを向上させるためにこれらの機能を利用できます。 この機能を WCF アプリケーションに統合した場合、ユーザーはユーザー名とパスワードの組み合わせを WCF クライアント アプリケーションに提示する必要があります。 WCF でデータベースを使用できるようにするには、ServiceAuthorizationBehavior クラスのインスタンスを作成し、その PrincipalPermissionMode プロパティを UseAspNetRoles に設定してから、サービスをホストしている ServiceHost に対する動作のコレクションにそのインスタンスを追加します。

ロール プロバイダーを構成する

  1. Web.config ファイルで、<system.web> 要素の下に <roleManager> 要素を追加し、その enabled 属性を true に設定します。

  2. defaultProvider 属性を SqlRoleProvider に設定します。

  3. <roleManager> 要素の子として <providers> 要素を追加します。

  4. 次の例に示すように、<providers> 要素の子として <add> 要素を追加し、nametypeconnectionStringNameapplicationName の各属性を適切な値に設定します。

    <!-- Configure the Sql Role Provider. -->  
    <roleManager enabled ="true"
     defaultProvider ="SqlRoleProvider" >  
       <providers>  
         <add name ="SqlRoleProvider"
           type="System.Web.Security.SqlRoleProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipAndRoleProviderSample"/>  
       </providers>  
    </roleManager>  
    

ロール プロバイダーを使用するようにサービスを構成する

  1. Web.config ファイルで、<system.serviceModel> 要素を追加します。

  2. <behaviors> 要素を <system.ServiceModel> 要素に追加します。

  3. <serviceBehaviors> を <behaviors> 要素に追加します。

  4. <behavior> 要素を追加し、name 属性を適切な値に設定します。

  5. <serviceAuthorization> を <behavior> 要素に追加します。

  6. principalPermissionMode 属性を UseAspNetRoles に設定します。

  7. roleProviderName 属性を SqlRoleProvider に設定します。 この構成の一部を次の例に示します。

    <behaviors>  
     <serviceBehaviors>  
      <behavior name="CalculatorServiceBehavior">  
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"  
                             roleProviderName ="SqlRoleProvider" />  
      </behavior>  
     </serviceBehaviors>  
    </behaviors>  
    

関連項目