2

質問 1 - ユーザーがメールと生成されたパスワードなしでパスワードをリセットできるようにしたいと考えています。ユーザーは、作成したカスタム フォームによって内部データベースに対して自分自身を確認します。次に、ユーザー名とセキュリティに関する Q&A を求めたいと思います。セキュリティ QA のやり方がわからないので、パスワード回復コントロールをカスタマイズすることにしました。新しいパスワードを記載したメールを送信したくありません。むしろ、ユーザー名と質問が正しい場合は、パスワードのリセット ページに送りたいと思います。

カスタム コードを記述するか、事前に構築されたコンポーネントを使用して、セキュリティの質問をして比較する方法はありますか。また、パスワードをリセットしたら、どうすればパスワードを設定できますか?

質問 2 - 「ユーザー名を忘れた」問題に取り組んでいます。最初にデータベースに対して検証します。入力内容に基づいて、フォーム認証データベースでユーザー名とユーザー ID を突き合わせて見つけることができます。セキュリティに関する質問をしたいのですが、入力した内容からハッシュを作成して、ユーザーの aspnet データベースの内容を比較する方法がわかりません。これを行う方法はありますか?

ありがとう!!!

4

1 に答える 1

6

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

それが役立つことを願っています!

于 2009-02-06T22:49:16.117 に答える