ASP.NET アプリケーションの設定によるメンバシップの使用
更新 : 2007 年 11 月
ASP.NET メンバシップは、アプリケーションの Web.config ファイルの membership 要素を使用して設定します。membership 要素は、system.web セクションのサブ要素です。ASP.NET メンバシップをアプリケーションに対して有効にするには、該当するアプリケーションの Web.config ファイルを直接編集するか、またはウィザードベースのインターフェイスを提供する Web サイト管理ツールを使用できます。メンバシップを設定する際には、以下を指定します。
使用するメンバシップ プロバイダ。複数の指定も可能です(通常、メンバシップ情報を格納するデータベースも指定されます)。
パスワード オプション (暗号化や、ユーザー固有の質問に基いてパスワードの復元をサポートするかどうかなど)。
ユーザーとパスワード。Web サイト管理ツールを使用する場合は、ユーザーを直接作成し、管理できます。このツールを使用しない場合は、メンバシップ関数を呼び出し、プログラムによってユーザーを作成および管理する必要があります。
Web サイト管理ツールを使用して ASP.NET メンバシップを設定する例については、「チュートリアル : メンバシップとユーザー ログインを使用する Web サイトの作成」を参照してください。
既定のプロバイダの指定
membership 要素の defaultProvider 属性を使用して、既定のメンバシップ プロバイダを指定します。既定のプロバイダを明示的に指定しない場合は、既定のプロバイダとして識別されている、"AspNetSqlMembershipProvider" という SqlMembershipProvider インスタンスが自動的に指定されます。"AspNetSqlMembershipProvider" は、ローカル SQL Server の aspnetdb データベースに接続します。
メモ : |
---|
SqlMembershipProvider によって使用されるデータベースは、アプリケーションで使用する前に設定する必要があります。詳細については、「SQL Server 向けアプリケーション サービス データベースの作成と構成」を参照してください。 |
membership セクションでプロバイダを設定すると、既定のプロバイダ インスタンスとそのプロバイダのオプションを指定することもできます。アプリケーションで利用できるプロバイダのコレクションに追加するプロバイダを指定するには、providers 要素を使用します。name 属性の値を defaultProvider 値として使用すると、プロバイダ インスタンスを既定のプロバイダとして指定できます。プロバイダ インスタンスを指定するときは、構成の connectionStrings セクションを使用して、そのインスタンスに対して有効な接続文字列を指定する必要があります。たとえば、次の Web.config ファイルでは、ローカル サーバー以外の SQL Server に接続する SqlMembershipProvider インスタンスを指定します。
<configuration>
<connectionStrings>
<add name="MySqlConnection" connectionString="Data
Source=MySqlServer;Initial Catalog=aspnetdb;Integrated
Security=SSPI;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MySqlConnection"
applicationName="MyApplication"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
</configuration>