Membership.Provider プロパティ
アセンブリ: System.Web (system.web.dll 内)

MembershipProvider 抽象基本クラスを使用して公開されるアプリケーションの既定のメンバシップ プロバイダ。

Provider プロパティを使用すると、アプリケーションの既定のメンバシップ プロバイダを直接参照できます。この方法は、MembershipProvider 抽象基本クラスの一部でない、メンバシップ プロバイダのカスタム メンバにアクセスする場合によく使用されます。

Provider プロパティを使用してアプリケーションに対して有効になっている既定の SqlMembershipProvider にアクセスして、カスタム RequiresUniqueEmail プロパティ値を確認するコード例を次に示します。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Public Sub Page_Load() Dim p As SqlMembershipProvider = CType(Membership.Provider, SqlMembershipProvider) If p.RequiresUniqueEmail Then EmailRequiredValidator.Enabled = True End If End Sub Public Sub CreateUser_OnClick(sender As Object, args As EventArgs) Try ' Create new user. Dim newUser As MembershipUser = Membership.CreateUser(UsernameTextbox.Text, PasswordTextbox.Text, _ EmailTextbox.Text) ' If user created successfully, set password question and answer (if applicable) and ' redirect to login page. Otherwise Return an error message. If Membership.RequiresQuestionAndAnswer Then newUser.ChangePasswordQuestionAndAnswer(PasswordTextbox.Text, _ PasswordQuestionTextbox.Text, _ PasswordAnswerTextbox.Text) End If Response.Redirect("logincs.aspx") Catch e As MembershipCreateUserException Msg.Text = GetErrorMessage(e.StatusCode) Catch e As HttpException Msg.Text = e.Message End Try End Sub Public Function GetErrorMessage(status As MembershipCreateStatus) As String Select Case status Case MembershipCreateStatus.DuplicateUserName Return "Username already exists. Please enter a different user name." Case MembershipCreateStatus.DuplicateEmail Return "A username for that e-mail address already exists. Please enter a different e-mail address." Case MembershipCreateStatus.InvalidPassword Return "The password provided is invalid. Please enter a valid password value." Case MembershipCreateStatus.InvalidEmail Return "The e-mail address provided is invalid. Please check the value and try again." Case MembershipCreateStatus.InvalidAnswer Return "The password retrieval answer provided is invalid. Please check the value and try again." Case MembershipCreateStatus.InvalidQuestion Return "The password retrieval question provided is invalid. Please check the value and try again." Case MembershipCreateStatus.ProviderError Return "The authentication provider Returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator." Case MembershipCreateStatus.UserRejected Return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator." Case Else Return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator." End Select End Function </script> <html> <head> <title>Create User</title> </head> <body> <form runat="server"> <h3>Create New User</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><BR> <table CellPadding="3" border="0"> <tr> <td>Username:</td> <td><asp:Textbox id="UsernameTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" ControlToValidate="UserNameTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Password:</td> <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td> <td><asp:RequiredFieldValidator id="PasswordRequiredValidator" runat="server" ControlToValidate="PasswordTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Confirm Password:</td> <td><asp:Textbox id="PasswordConfirmTextbox" runat="server" TextMode="Password" /></td> <td><asp:RequiredFieldValidator id="PasswordConfirmRequiredValidator" runat="server" ControlToValidate="PasswordConfirmTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /> <asp:CompareValidator id="PasswordConfirmCompareValidator" runat="server" ControlToValidate="PasswordConfirmTextbox" ForeColor="red" Display="Static" ControlToCompare="PasswordTextBox" ErrorMessage="Confirm password must match password." /> </td> </tr> <tr> <td>Email Address:</td> <td><asp:Textbox id="EmailTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server" enabled="False" ControlToValidate="EmailTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <% If Membership.RequiresQuestionAndAnswer Then %> <tr> <td>Password Question:</td> <td><asp:Textbox id="PasswordQuestionTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="PasswordQuestionRequiredValidator" runat="server" ControlToValidate="PasswordQuestionTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Password Answer:</td> <td><asp:Textbox id="PasswordAnswerTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="PasswordAnswerRequiredValidator" runat="server" ControlToValidate="PasswordAnswerTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <% End If %> <tr> <td></td> <td><asp:Button id="CreateUserButton" Text="Create User" OnClick="CreateUser_OnClick" runat="server" /></td> </tr> </table> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> public void Page_Load() { SqlMembershipProvider p = (SqlMembershipProvider)Membership.Provider; if (p.RequiresUniqueEmail) { EmailRequiredValidator.Enabled = true; } } public void CreateUser_OnClick(object sender, EventArgs args) { try { // Create new user. MembershipUser newUser = Membership.CreateUser(UsernameTextbox.Text, PasswordTextbox.Text, EmailTextbox.Text); // If user created successfully, set password question and answer (if applicable) and // redirect to login page. Otherwise return an error message. if (Membership.RequiresQuestionAndAnswer) { newUser.ChangePasswordQuestionAndAnswer(PasswordTextbox.Text, PasswordQuestionTextbox.Text, PasswordAnswerTextbox.Text); } Response.Redirect("logincs.aspx"); } catch (MembershipCreateUserException e) { Msg.Text = GetErrorMessage(e.StatusCode); } catch (HttpException e) { Msg.Text = e.Message; } } public string GetErrorMessage(MembershipCreateStatus status) { switch (status) { case MembershipCreateStatus.DuplicateUserName: return "Username already exists. Please enter a different user name."; case MembershipCreateStatus.DuplicateEmail: return "A username for that e-mail address already exists. Please enter a different e-mail address."; case MembershipCreateStatus.InvalidPassword: return "The password provided is invalid. Please enter a valid password value."; case MembershipCreateStatus.InvalidEmail: return "The e-mail address provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidAnswer: return "The password retrieval answer provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidQuestion: return "The password retrieval question provided is invalid. Please check the value and try again."; case MembershipCreateStatus.ProviderError: return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; case MembershipCreateStatus.UserRejected: return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; default: return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."; } } </script> <html> <head> <title>Create User</title> </head> <body> <form runat="server"> <h3>Create New User</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><BR> <table CellPadding="3" border="0"> <tr> <td>Username:</td> <td><asp:Textbox id="UsernameTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" ControlToValidate="UserNameTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Password:</td> <td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td> <td><asp:RequiredFieldValidator id="PasswordRequiredValidator" runat="server" ControlToValidate="PasswordTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Confirm Password:</td> <td><asp:Textbox id="PasswordConfirmTextbox" runat="server" TextMode="Password" /></td> <td><asp:RequiredFieldValidator id="PasswordConfirmRequiredValidator" runat="server" ControlToValidate="PasswordConfirmTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /> <asp:CompareValidator id="PasswordConfirmCompareValidator" runat="server" ControlToValidate="PasswordConfirmTextbox" ForeColor="red" Display="Static" ControlToCompare="PasswordTextBox" ErrorMessage="Confirm password must match password." /> </td> </tr> <tr> <td>Email Address:</td> <td><asp:Textbox id="EmailTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server" enabled="False" ControlToValidate="EmailTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <% if (Membership.RequiresQuestionAndAnswer) { %> <tr> <td>Password Question:</td> <td><asp:Textbox id="PasswordQuestionTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="PasswordQuestionRequiredValidator" runat="server" ControlToValidate="PasswordQuestionTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td>Password Answer:</td> <td><asp:Textbox id="PasswordAnswerTextbox" runat="server" /></td> <td><asp:RequiredFieldValidator id="PasswordAnswerRequiredValidator" runat="server" ControlToValidate="PasswordAnswerTextbox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <% } %> <tr> <td></td> <td><asp:Button id="CreateUserButton" Text="Create User" OnClick="CreateUser_OnClick" runat="server" /></td> </tr> </table> </form> </body> </html>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MembershipProvider イベント
MembershipProvider クラス
アセンブリ: System.Web (system.web.dll 内)


ASP.NET メンバシップは、ASP.NET アプリケーションに対してさまざまなメンバシップ プロバイダを簡単に使用できるように設計されています。.NET Framework に用意されているメンバシップ プロバイダを使用することも、独自のプロバイダを実装することもできます。
カスタム メンバシップ プロバイダを実装する場合は、MembershipProvider 抽象クラスを継承する必要があります。
カスタム メンバシップ プロバイダを作成する主な理由は次の 2 つです。
-
Oracle データベースのデータ ストアなど、.NET Framework に付属のメンバシップ プロバイダがサポートしていないデータ ストア内に、メンバシップ情報を格納する必要がある。
-
.NET Framework に付属のプロバイダが使用するデータベース スキーマとは異なるデータベース スキーマを使用してメンバシップ情報を管理する必要がある。この代表的な例は、メンバシップ データが社内ネットワーク用または Web サイト用の SQL Server データベースに既に格納されている場合です。
MembershipProvider 抽象クラスは ProviderBase 抽象クラスがベースになっています。MembershipProvider の実装では、ProviderBase の必須メンバも実装する必要があります。


System.Configuration.Provider.ProviderBase
System.Web.Security.MembershipProvider
System.Web.Security.ActiveDirectoryMembershipProvider
System.Web.Security.SqlMembershipProvider


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MembershipProvider コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


MembershipProvider 抽象クラスを継承するクラスでは、コンストラクタを実装する必要はありません。MembershipProvider 実装の初期化値は、Initialize メソッド実装に渡されます。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MembershipProvider プロパティ

名前 | 説明 | |
---|---|---|
![]() | ApplicationName | カスタム メンバシップ プロバイダを使用するアプリケーションの名前。 |
![]() | Description | 管理ツールまたは他のユーザー インターフェイス (UI) での表示に適した、簡単でわかりやすい説明を取得します。 ( ProviderBase から継承されます。) |
![]() | EnablePasswordReset | ユーザーがパスワードをリセットできるように、メンバシップ プロバイダが構成されているかどうかを示します。 |
![]() | EnablePasswordRetrieval | ユーザーがパスワードを取得できるように、メンバシップ プロバイダが構成されているかどうかを示します。 |
![]() | MaxInvalidPasswordAttempts | メンバシップ ユーザーがロックされるまでの無効なパスワードまたはパスワード解答の指定回数を取得します。 |
![]() | MinRequiredNonAlphanumericCharacters | 有効なパスワードに最低限含むことが必要な特殊文字の数を取得します。 |
![]() | MinRequiredPasswordLength | パスワードに最低限必要な長さを取得します。 |
![]() | Name | 構成時にプロバイダを参照するために使用される表示名を取得します。 ( ProviderBase から継承されます。) |
![]() | PasswordAttemptWindow | 無効なパスワードまたはパスワードの解答を最大回数まで指定できる、メンバシップ ユーザーがロックされるまでの期間を示す分数を取得します。 |
![]() | PasswordFormat | メンバシップ データ ソースにパスワードを格納する形式を示す値を取得します。 |
![]() | PasswordStrengthRegularExpression | パスワードの評価に使用される正規表現を取得します。 |
![]() | RequiresQuestionAndAnswer | ユーザーがパスワードをリセットおよび取得する際にパスワードの質問に答えなければならないように、メンバシップ プロバイダが構成されているかどうかを示す値を取得します。 |
![]() | RequiresUniqueEmail | メンバシップ プロバイダが各ユーザー名に対して一意の電子メール アドレスを要求するかどうかを示す値を取得します。 |

MembershipProvider メソッド


名前 | 説明 | |
---|---|---|
![]() | DecryptPassword | 暗号化されたパスワードを復号化します。 |
![]() | EncryptPassword | パスワードを暗号化します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | OnValidatingPassword | イベント ハンドラが定義されている場合に ValidatingPassword イベントを発生させます。 |

MembershipProvider メンバ
カスタム メンバシップ プロバイダを使用してメンバシップ サービスを提供するために、ASP.NET が実装するコントラクトを定義します。
MembershipProvider データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | ApplicationName | カスタム メンバシップ プロバイダを使用するアプリケーションの名前。 |
![]() | Description | 管理ツールまたは他のユーザー インターフェイス (UI) での表示に適した、簡単でわかりやすい説明を取得します。(ProviderBase から継承されます。) |
![]() | EnablePasswordReset | ユーザーがパスワードをリセットできるように、メンバシップ プロバイダが構成されているかどうかを示します。 |
![]() | EnablePasswordRetrieval | ユーザーがパスワードを取得できるように、メンバシップ プロバイダが構成されているかどうかを示します。 |
![]() | MaxInvalidPasswordAttempts | メンバシップ ユーザーがロックされるまでの無効なパスワードまたはパスワード解答の指定回数を取得します。 |
![]() | MinRequiredNonAlphanumericCharacters | 有効なパスワードに最低限含むことが必要な特殊文字の数を取得します。 |
![]() | MinRequiredPasswordLength | パスワードに最低限必要な長さを取得します。 |
![]() | Name | 構成時にプロバイダを参照するために使用される表示名を取得します。(ProviderBase から継承されます。) |
![]() | PasswordAttemptWindow | 無効なパスワードまたはパスワードの解答を最大回数まで指定できる、メンバシップ ユーザーがロックされるまでの期間を示す分数を取得します。 |
![]() | PasswordFormat | メンバシップ データ ソースにパスワードを格納する形式を示す値を取得します。 |
![]() | PasswordStrengthRegularExpression | パスワードの評価に使用される正規表現を取得します。 |
![]() | RequiresQuestionAndAnswer | ユーザーがパスワードをリセットおよび取得する際にパスワードの質問に答えなければならないように、メンバシップ プロバイダが構成されているかどうかを示す値を取得します。 |
![]() | RequiresUniqueEmail | メンバシップ プロバイダが各ユーザー名に対して一意の電子メール アドレスを要求するかどうかを示す値を取得します。 |


名前 | 説明 | |
---|---|---|
![]() | DecryptPassword | 暗号化されたパスワードを復号化します。 |
![]() | EncryptPassword | パスワードを暗号化します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | OnValidatingPassword | イベント ハンドラが定義されている場合に ValidatingPassword イベントを発生させます。 |


- Membership.Providerのページへのリンク