方法 : 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> 要素を追加し、nametypeconnectionStringName、および applicationName の各属性を適切な値に設定します。

    <!-- 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. <behaviors> 要素に serviceBehaviors sectionを追加します。

  4. Behavior elementを追加し、name 属性を適切な値に設定します。

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

  6. principalPermissionMode 属性を UseAspNetRoles に追加します。

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

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

参照

処理手順

メンバーシップとロール プロバイダー
方法 : ASP.NET メンバーシップ プロバイダーを使用する