5

ASP.NET MVC 4 Web アプリで作業しています。パスワードを忘れるページを作成しようとしています。私のPOSTで、パスワードに関連するユーザーが存在することを確認します

WebSecurity.UserExists(email)

trueを返しますが、実行すると

WebSecurity.GeneratePasswordResetToken(email, 10);

このエラーが発生しています

No account exists for *email*

参考までに、私はこのチュートリアルに従っていました: http://www.thecodingguys.net/tutorials/asp/webpages-membership-forgot-password-and-reset-password

何か案は?

4

3 に答える 3

8

[webpages_Membership] テーブルで、ユーザーの確認が表示されませんでした。

于 2013-01-18T10:11:30.673 に答える
5

ユーザーが確認されていない場合、同じエラーがスローされます。これが誰かを助けるかもしれないので、見つけるのにしばらく時間がかかりました。これは一種のハッキーなので、おそらく誰かがそれを行うためのより良い方法を持っています.

私の場合、クライアントはメールでユーザーにパスワードを送信したいと考えています (私は知っています....)。メールを再送信する必要がある場合は、新しいパスワードを生成する必要があります。

 private string ChangePasswordForNotConfirmedUser(string emailAdress)
    {
        var membership = _membershipRepository.GetByUserName(emailAdress);
        membership.IsConfirmed = true;
        _membershipRepository.Save(membership);
        var token = WebSecurity.GeneratePasswordResetToken(emailAdress);
        var password = Membership.GeneratePassword(GlobalSettings.PasswordLenght, GlobalSettings.PasswordNoAlphaChars);
        WebSecurity.ResetPassword(token, password);
        membership.IsConfirmed = false;
        _membershipRepository.Save(membership);
        return password;
    }
于 2013-07-31T12:24:29.640 に答える