メンバシップ [membership]
Membership イベント
Membership クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説
Membership クラスは、ASP.NET アプリケーションでユーザーの資格情報を検証し、パスワードや電子メール アドレスなどユーザー設定を管理する目的で使用されます。Membership クラスは、独自で使用することも、FormsAuthentication と連携して使用することにより、Web アプリケーションまたは Web サイトのユーザーを認証するための詳細なシステムを作成することもできます。Login コントロールには、ユーザーを検証するための便利なしくみを提供する Membership クラスがカプセル化されています。
-
メンバシップ情報 (ユーザー名、パスワード、電子メール アドレス、およびサポート データ) を Microsoft SQL Server またはその他のデータ ストアに格納します。
-
サイトを訪れるユーザーを認証します。プログラムでユーザーを認証することもできますし、Login コントロールを使用して、コーディングをほとんどすることなく詳細な認証システムを作成することもできます。
-
パスワードの作成、変更、取得、リセットなど、パスワードの管理を行います。パスワードを忘れたユーザーに対して、パスワードのリセットまたは取得を許可する際、ユーザーにパスワードの質問に対する解答を求めるように ASP.NET メンバシップを構成することもできます。
ASP.NET メンバシップは ASP.NET で認証を行うための独立した機能ですが、サイトの承認サービスを提供する ASP.NET のロール管理機能と統合させることもできます。また、ユーザー単位でカスタマイズできるアプリケーション固有のカスタマイズ機能を提供する ASP.NET ユーザー System.Web.Profile とメンバシップを統合させることもできます。詳細については、「ロール管理について」と「ASP.NET プロファイル プロパティの概要」を参照してください。
Membership クラスは、データ ソースとやり取りするためにメンバシップ プロバイダを使用します。.NET Framework には、Microsoft SQL Server データベースにユーザー情報を格納する SqlMembershipProvider、および Active Directory または Active Directory Application Mode (ADAM) サーバーにユーザー情報を格納できる ActiveDirectoryMembershipProvider が付属します。また、Membership クラスで使用できる代替データ ソースとやり取りするカスタム メンバシップ プロバイダを実装することもできます。カスタム メンバシップ プロバイダは、MembershipProvider 抽象クラスを継承します。詳細については、「メンバシップ プロバイダの実装」を参照してください。
既定では、すべての ASP.NET アプリケーションで ASP.NET メンバシップは有効になっています。既定のメンバシップ プロバイダは SqlMembershipProvider で、コンピュータ構成内で AspNetSqlProvider と指定されます。 SqlMembershipProvider の既定のインスタンスは、Microsoft SQL Server のローカル インスタンスに接続するように構成されます。
既定の設定を変更して、AspNetSqlProvider インスタンス以外の SqlMembershipProvider を既定のプロバイダとして指定したり、Web.config ファイルを使用してカスタム プロバイダのインスタンスを ASP.NET アプリケーションの既定のプロバイダとして指定したりできます。Web.config ファイルの membership 構成セクションを使用して、Web アプリケーションの ASP.NET メンバシップ構成を指定できます。membership セクションの providers サブセクションを使用して、既定のプロバイダ以外のメンバシップ プロバイダを指定できます。たとえば、次の membership セクションでは、現在のアプリケーション構成から既定のメンバシップ プロバイダを削除し、MySqlServer という名前の SQL Server インスタンスに接続する新しいプロバイダを SqlProvider の名前で追加しています。
<configuration> <connectionStrings> <add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" /> </connectionStrings> <system.web> <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20"> <providers> <remove name="AspNetSqlProvider" /> <add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SqlServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" applicationName="/" /> </providers> </membership> </system.web> </configuration>
次のコード例に、フォーム認証と ASP.NET メンバシップを使用するように構成されている ASP.NET アプリケーションのログイン ページを示します。指定されたユーザーの資格情報が無効な場合、ユーザーにメッセージが表示されます。それ以外の場合、RedirectFromLoginPage メソッドを使用して、ユーザーは最初に要求した URL にリダイレクトされます。
メモ |
---|
ユーザーに資格情報の入力を求めて、メンバシップ システム内で資格情報を検証するために必要なほぼすべてのロジックが ASP.NET ログイン コントロール (Login、LoginView、LoginStatus、LoginName、および PasswordRecovery) にカプセル化されています。Membership クラスを使用してプログラムで認証作業を行う代わりにこれらのコントロールを使用できます。 |
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Public Sub Login_OnClick(sender As Object, args As EventArgs) If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked) Else Msg.Text = "Login failed. Please check your user name and password and try again." End If End Sub </script> <html> <head> <title>Login</title> </head> <body> <form runat="server"> <h3>Login</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR> Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR> <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" /> <asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer. </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> public void Login_OnClick(object sender, EventArgs args) { if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); else Msg.Text = "Login failed. Please check your user name and password and try again."; } </script> <html> <head> <title>Login</title> </head> <body> <form runat="server"> <h3>Login</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR> Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR> <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" /> <asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer. </form> </body> </html>
継承階層
System.Web.Security.Membership
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Membership プロパティ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
ApplicationName | アプリケーションの名前を取得または設定します。 | |
EnablePasswordReset | 現在のメンバシップ プロバイダによってユーザーにパスワードのリセットが許可されているかどうかを示す値を取得します。 | |
EnablePasswordRetrieval | 現在のメンバシップ プロバイダによってユーザーにパスワードの取得が許可されているかどうかを示す値を取得します。 | |
HashAlgorithmType | パスワードをハッシュするために使用するアルゴリズムの識別子。 | |
MaxInvalidPasswordAttempts | メンバシップ ユーザーがロックされるまでの無効なパスワードまたはパスワード解答の指定回数を取得します。 | |
MinRequiredNonAlphanumericCharacters | 有効なパスワードに最低限含むことが必要な特殊文字の数を取得します。 | |
MinRequiredPasswordLength | パスワードに最低限必要な長さを取得します。 | |
PasswordAttemptWindow | 無効なパスワードまたはパスワードの解答を最大回数まで指定できる、メンバシップ ユーザーがロックされるまでの期間を示す分数を取得します。 | |
PasswordStrengthRegularExpression | パスワードの評価に使用される正規表現を取得します。 | |
Provider | アプリケーションの既定のメンバシップ プロバイダへの参照を取得します。 | |
Providers | ASP.NET アプリケーションのメンバシップ プロバイダのコレクションを取得します。 | |
RequiresQuestionAndAnswer | ユーザーがパスワードをリセットおよび取得する際にパスワードの質問に答えなければならないように、既定のメンバシップ プロバイダが構成されているかどうかを示す値を取得します。 | |
UserIsOnlineTimeWindow | それ以降ユーザーがもはやオンラインでないと見なされる、ユーザーの最終利用日時スタンプからの時間を分単位で指定します。 |
Membership メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
CreateUser | オーバーロードされます。 新しいユーザーをデータ ストアに追加します。 | |
DeleteUser | オーバーロードされます。 データベースからユーザーを削除します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
FindUsersByEmail | オーバーロードされます。 電子メール アドレスが指定内容と一致するメンバシップ ユーザーのコレクションを取得します。 | |
FindUsersByName | オーバーロードされます。 ユーザー名が指定内容と一致するメンバシップ ユーザーのコレクションを取得します。 | |
GeneratePassword | 指定した長さのランダム パスワードを生成します。 | |
GetAllUsers | オーバーロードされます。 データベース内のユーザーのコレクションを取得します。 | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetNumberOfUsersOnline | アプリケーションに現在アクセスしているユーザーの数を取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
GetUser | オーバーロードされます。 データ ソースからメンバシップ ユーザーの情報を取得します。 | |
GetUserNameByEmail | 電子メール アドレスが指定内容と一致するユーザー名を取得します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) | |
UpdateUser | 指定したユーザーの情報でデータベースを更新します。 | |
ValidateUser | 指定されたユーザー名とパスワードが有効かどうかを検証します。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
Membership メンバ
ユーザーの資格情報を検証し、ユーザー設定を管理します。このクラスは継承できません。
Membership データ型で公開されるメンバを以下の表に示します。
パブリック プロパティ
名前 | 説明 | |
---|---|---|
ApplicationName | アプリケーションの名前を取得または設定します。 | |
EnablePasswordReset | 現在のメンバシップ プロバイダによってユーザーにパスワードのリセットが許可されているかどうかを示す値を取得します。 | |
EnablePasswordRetrieval | 現在のメンバシップ プロバイダによってユーザーにパスワードの取得が許可されているかどうかを示す値を取得します。 | |
HashAlgorithmType | パスワードをハッシュするために使用するアルゴリズムの識別子。 | |
MaxInvalidPasswordAttempts | メンバシップ ユーザーがロックされるまでの無効なパスワードまたはパスワード解答の指定回数を取得します。 | |
MinRequiredNonAlphanumericCharacters | 有効なパスワードに最低限含むことが必要な特殊文字の数を取得します。 | |
MinRequiredPasswordLength | パスワードに最低限必要な長さを取得します。 | |
PasswordAttemptWindow | 無効なパスワードまたはパスワードの解答を最大回数まで指定できる、メンバシップ ユーザーがロックされるまでの期間を示す分数を取得します。 | |
PasswordStrengthRegularExpression | パスワードの評価に使用される正規表現を取得します。 | |
Provider | アプリケーションの既定のメンバシップ プロバイダへの参照を取得します。 | |
Providers | ASP.NET アプリケーションのメンバシップ プロバイダのコレクションを取得します。 | |
RequiresQuestionAndAnswer | ユーザーがパスワードをリセットおよび取得する際にパスワードの質問に答えなければならないように、既定のメンバシップ プロバイダが構成されているかどうかを示す値を取得します。 | |
UserIsOnlineTimeWindow | それ以降ユーザーがもはやオンラインでないと見なされる、ユーザーの最終利用日時スタンプからの時間を分単位で指定します。 |
名前 | 説明 | |
---|---|---|
CreateUser | オーバーロードされます。 新しいユーザーをデータ ストアに追加します。 | |
DeleteUser | オーバーロードされます。 データベースからユーザーを削除します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
FindUsersByEmail | オーバーロードされます。 電子メール アドレスが指定内容と一致するメンバシップ ユーザーのコレクションを取得します。 | |
FindUsersByName | オーバーロードされます。 ユーザー名が指定内容と一致するメンバシップ ユーザーのコレクションを取得します。 | |
GeneratePassword | 指定した長さのランダム パスワードを生成します。 | |
GetAllUsers | オーバーロードされます。 データベース内のユーザーのコレクションを取得します。 | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetNumberOfUsersOnline | アプリケーションに現在アクセスしているユーザーの数を取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
GetUser | オーバーロードされます。 データ ソースからメンバシップ ユーザーの情報を取得します。 | |
GetUserNameByEmail | 電子メール アドレスが指定内容と一致するユーザー名を取得します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) | |
UpdateUser | 指定したユーザーの情報でデータベースを更新します。 | |
ValidateUser | 指定されたユーザー名とパスワードが有効かどうかを検証します。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参照
社員権
- membershipのページへのリンク