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