2

ASP.Net メンバーシップ プロバイダーが提供するセキュリティの質問と回答機能は必要ありませんが、紛失/忘れたパスワード ページを有効にしたいと考えています。

このページは、ユーザーが自分の電子メール アドレスを入力する場所です。ユーザーが登録されている場合は、登録された電子メール アドレスに送信されたリンクを介してパスワードをリセットするために電子メールがそのアドレスに送信されます。

このようなリクエストを追跡するためのカスタム テーブル、リクエストに割り当てられたランダム キー、およびリクエストの有効期限を作成しました。ただし、実際にパスワードをリセットするコードを作成する際に、セキュリティ Q&A ビット (私が持っていない) を使用せずに ResetPassword(email, newPassword) のようなことを行うメソッドがないように思われることに気付きました。

組み込みのメンバーシップ機能を介してユーザーのパスワードを簡単にリセットする方法はありますか?

そうでない場合、どのようにこれを行う必要がありますか?

助けてくれてありがとう。-日産

4

2 に答える 2

3

私がやったことは次のとおりでした

public string ResetPassword(string email)
        {
            var m_userName = Membership.GetUserNameByEmail(email);
            var m_user = Membership.GetUser(m_userName);
            return m_user.ResetPassword();
        }

次に、この値を使用してパスワードを変更する新しい方法を追加しました

public bool ChangeLostPassword(string email, string newPassword)
    {
        var resetPassword = ResetPassword(email);
        var currentUser = Membership.GetUser(Membership.GetUserNameByEmail(email), true);
        return currentUser.ChangePassword(resetPassword, newPassword);

    }
于 2009-05-28T11:36:37.463 に答える
3

web.config でこのオプションを変更しないのはなぜですか?

         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"

<membership>
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" ...
      ..........
于 2009-05-28T14:32:54.067 に答える