ロール管理プロバイダ
更新 : 2007 年 11 月
ロール管理サービスは、プロバイダ モデルを使用してロール情報を含むデータ ストアからロール管理の機能である API を切り離します。.NET Framework は、ロール情報をさまざまなデータ ストアで維持する次のプロバイダを含みます。
SQL Server。ロール情報は SQL Server データベースに格納されます。SQL プロバイダは、中規模から大規模のインターネット アプリケーションに適しています。これは、既定のプロバイダです。
Windows (WindowsToken)。ロール情報は Windows アカウント (ユーザーとグループ) に基づきます。Windows プロバイダは、すべてのユーザーがドメイン アカウントを持つネットワーク上でアプリケーションが動作している場合にだけ便利です。
承認マネージャ (AzMan)。ロール情報は承認マネージャ XML ファイルまたはディレクトリ ベースのポリシー ストアを使用して管理されます。
アプリケーションの Web.config ファイルでロール管理を構成する場合は、defaultProvider 属性を設定することでプロバイダを指定してください。たとえば、"SQL" という名前でロール プロバイダ インスタンスを指定するには、構成ファイルの roleManager 要素 (ASP.NET 設定スキーマ) に次の入力を行います。
<roleManager
defaultProvider="SQL"enabled="true"
cacheRolesInCookie="true" >
</roleManager>
ロールは、メンバシップ サービスとユーザー プロファイルに使用するのと同じデータベースを使用できます。ただし、これらのサービスごとに異なるプロバイダを指定するオプションは用意されています。ロール管理データベースの構成については、「SQL Server 向けアプリケーション サービス データベースの作成と構成」を参照してください。
WindowsTokenRoleProvider プロバイダを指定する場合は、Web.config ファイルに次のように入力して Windows 認証を使用するようにアプリケーションを構成する必要もあります。
<authentication mode="Windows" />
WindowsTokenRoleProvider プロバイダは、ロール管理 API の管理機能のほとんどをサポートしていません。たとえば、WindowsTokenRoleProvider プロバイダを使用する場合は、ロール管理を使用してグループを作成したり、ユーザーをグループに追加したりできません。これらの機能は Windows で実行する必要があります。
カスタム ロール管理プロバイダ
また、ロール情報用に独自のストレージを定義したり、既存のロール情報ストアを使用したりできるカスタム ロール管理プロバイダも作成できます。一般的な方法としては、RoleProvider 抽象クラスを継承するクラスを作成します。RoleProvider クラスはプロバイダが定義するメソッドを識別します (これは基本的には Roles クラスのメソッドと同じです)。
カスタム ロール プロバイダを定義した後は、.NET Framework で提供されるプロバイダの 1 つを使用するようにアプリケーションを構成する場合と同じ方法で、そのカスタム ロール プロバイダをアプリケーションが使用するように構成できます。こうすることにより、ロール管理システムは自動的にカスタム プロバイダを起動し、そのメソッドを呼び出します。
詳細については、「ロール プロバイダの実装」を参照してください。