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

メンバシップ ユーザーに対するパスワードの質問。

RequiresQuestionAndAnswer が true の場合、GetPassword メソッドと ResetPassword メソッドに対して、メンバシップ ユーザーはパスワードの解答を入力する必要があります。PasswordQuestion から提供されるパスワードの質問を見て、メンバシップ ユーザーはパスワードの解答を入力します。メンバシップ ユーザーがパスワードの解答を入力すると、解答値が GetPassword メソッドまたは ResetPassword メソッドに渡されます。

適切なパスワードの解答が指定された場合にユーザーのパスワードをリセットするコード例を次に示します。ユーザーの PasswordQuestion が表示され、ユーザーはこれを見てパスワードの解答を入力します。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Dim u As MembershipUser Public Sub Page_Load(sender As Object, args As EventArgs) If Not Membership.EnablePasswordReset Then FormsAuthentication.RedirectToLoginPage() End If Msg.Text = "" If Not IsPostBack Then Msg.Text = "Please supply a username." Else VerifyUsername() End If End Sub Public Sub VerifyUsername() u = Membership.GetUser(UsernameTextBox.Text, False) If u Is Nothing Then Msg.Text = "Username " & Server.HtmlEncode(UsernameTextBox.Text) & " not found. Please check the value and re-enter." QuestionLabel.Text = "" QuestionLabel.Enabled = False AnswerTextBox.Enabled = False ResetPasswordButton.Enabled = False Else QuestionLabel.Text = u.PasswordQuestion QuestionLabel.Enabled = True AnswerTextBox.Enabled = True ResetPasswordButton.Enabled = True End If End Sub Public Sub ResetPassword_OnClick(sender As Object, args As EventArgs) Dim newPassword As String u = Membership.GetUser(UsernameTextBox.Text, False) If u Is Nothing Then Msg.Text = "Username " & Server.HtmlEncode(UsernameTextBox.Text) & " not found. Please check the value and re-enter." Return End If Try newPassword = u.ResetPassword(AnswerTextBox.Text) Catch e As MembershipPasswordException Msg.Text = "Invalid password answer. Please re-enter and try again." Return Catch e As Exception Msg.Text = e.Message Return End Try If Not newPassword Is Nothing Then Msg.Text = "Password reset. Your new password is: " & Server.HtmlEncode(newPassword) Else Msg.Text = "Password reset failed. Please re-enter your values and try again." End If End Sub </script> <html> <head> <title>Sample: Reset Password</title> </head> <body> <form runat="server"> <h3>Retrieve Password</h3> <asp:Label id="Msg" runat="server" ForeColor="maroon" /><BR> Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="True" /> <asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" ControlToValidate="UsernameTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" /><BR> Password Question: <B><asp:Label id="QuestionLabel" runat="server" /></B><BR> Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server" Enabled="False" /> <asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server" ControlToValidate="AnswerTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" Enabled="False" /><BR> <asp:Button id="ResetPasswordButton" Text="Reset Password" OnClick="ResetPassword_OnClick" runat="server" Enabled="False" /> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> MembershipUser u; public void Page_Load(object sender, EventArgs args) { if (!Membership.EnablePasswordReset) { FormsAuthentication.RedirectToLoginPage(); } Msg.Text = ""; if (!IsPostBack) { Msg.Text = "Please supply a username."; } else { VerifyUsername(); } } public void VerifyUsername() { u = Membership.GetUser(UsernameTextBox.Text, false); if (u == null) { Msg.Text = "Username " + Server.HtmlEncode(UsernameTextBox.Text) + " not found. Please check the value and re-enter."; QuestionLabel.Text = ""; QuestionLabel.Enabled = false; AnswerTextBox.Enabled = false; ResetPasswordButton.Enabled = false; } else { QuestionLabel.Text = u.PasswordQuestion; QuestionLabel.Enabled = true; AnswerTextBox.Enabled = true; ResetPasswordButton.Enabled = true; } } public void ResetPassword_OnClick(object sender, EventArgs args) { string newPassword; u = Membership.GetUser(UsernameTextBox.Text, false); if (u == null) { Msg.Text = "Username " + Server.HtmlEncode(UsernameTextBox.Text) + " not found. Please check the value and re-enter."; return; } try { newPassword = u.ResetPassword(AnswerTextBox.Text); } catch (MembershipPasswordException e) { Msg.Text = "Invalid password answer. Please re-enter and try again."; return; } catch (Exception e) { Msg.Text = e.Message; return; } if (newPassword != null) { Msg.Text = "Password reset. Your new password is: " + Server.HtmlEncode(newPassword); } else { Msg.Text = "Password reset failed. Please re-enter your values and try again."; } } </script> <html> <head> <title>Sample: Reset Password</title> </head> <body> <form runat="server"> <h3>Retrieve Password</h3> <asp:Label id="Msg" runat="server" ForeColor="maroon" /><BR> Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="true" /> <asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" ControlToValidate="UsernameTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" /><BR> Password Question: <B><asp:Label id="QuestionLabel" runat="server" /></B><BR> Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server" Enabled="false" /> <asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server" ControlToValidate="AnswerTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" Enabled="false" /><BR> <asp:Button id="ResetPasswordButton" Text="Reset Password" OnClick="ResetPassword_OnClick" runat="server" Enabled="false" /> </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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からMembershipUser.PasswordQuestion プロパティを検索する場合は、下記のリンクをクリックしてください。

- MembershipUser.PasswordQuestion プロパティのページへのリンク