方法 : 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 に対する動作のコレクションにそのインスタンスを追加します。
ロール プロバイダーを構成するには
Web.config ファイルで、<system.web> 要素の下に <roleManager> 要素を追加し、その enabled 属性を true に設定します。
defaultProvider 属性を SqlRoleProvider に追加します。
<roleManager> 要素の子として <providers> 要素を追加します。
次の例に示すように、<providers> 要素の子として <add> 要素を追加し、name、type、connectionStringName、および 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>
ロール プロバイダーを使用するようにサービスを構成するには
Web.config ファイルで <system.ServiceModel> 要素を追加します。
<behaviors> 要素を <system.ServiceModel> 要素に追加します。
<behaviors> 要素に serviceBehaviors sectionを追加します。
Behavior elementを追加し、name 属性を適切な値に設定します。
<serviceAuthorization> elementを <behavior> 要素に追加します。
principalPermissionMode 属性を UseAspNetRoles に追加します。
roleProviderName 属性を SqlRoleProvider に追加します。この構成の一部を次の例に示します。
<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>