asp.net フォーム認証を使用している場合、ユーザーがセキュリティの質問を使用してパスワードをリセットするためのメカニズムが既に提供されています。これは Web.config で構成でき、ASP.net ログイン コントロールの一部であるパスワード回復コントロールで使用できます。
メンバーシップ プロバイダー セクションの web.config で設定します。
requiresQuestionAndAnswer - true に設定すると、ユーザーのパスワードを取得またはリセットするために質問ビューが必要になります。false に設定すると、質問ビューはユーザーに表示されません。
ここでパスワード回復コントロールを使用するサンプル コードは次のとおりです。
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
<QuestionTemplate>
<h2>Forgot Password</h2>
Hello <asp:Literal ID="UserName" runat="server"></asp:Literal><br />
Please answer your password question : <br />
<asp:Literal ID="Question" runat="server"></asp:Literal>
<asp:TextBox ID="Answer" runat="server"></asp:TextBox><br />
<asp:Button ID="SubmitButton" runat="server" Text="Send Answer By Mail"
CommandName="Submit"/><br />
<asp:Literal ID="FailureText" runat="server"></asp:Literal>
</QuestionTemplate>
</asp:PasswordRecovery>
ASP.net ログイン コントロールの使用の詳細については、http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/default.aspx にアクセスしてください。
電子メールを送信しない限り、パスワード回復コントロールに OnSendingMail="CancelEmail" を追加して電子メールをキャンセルし、以下のようなコード ビハインドを追加して、新しいリセット パスワードを画面に表示するだけです。
Sub CancelEmail(ByVal sender As Object, ByVal e As MailMessageEventArgs)
e.Cancel = True
End Sub
それが役立つことを願っています!