2016-09-21 14 views
0

私はクラブのウェブサイトのための管理者作品を作っています。管理者権限を持つユーザーがユーザーのパスワードをリセットできるようにする必要があります。また、私たちのシナリオでは、電子メールでパスワードをリセットする代わりに、現在のパスワードが何であるかをユーザーに伝える方が簡単なので、ユーザーのパスワードをクリアテキストで見ることができるように管理者に伝えたいと思う。私は、電子メールの確認で2つの要素の認証を行うことは、これを行うより安全な方法であることを知っていますが、少なくとも今のところは、ユーザーのやりとりや確認の電子メールに対処したくありません。私は、必要に応じてパスワードを直接リセットすることができるだけでなく、パスワードを見ることができるように管理者が必要です。Asp.Net ID 2パスワードクリアテキストをリセットできませんでしたか?

私はついにこれを行うためのコードを思いついたと言われています。ただし、IdentityでResetPasswordAsyncメソッドを使用すると、AspNetUsersテーブルのPasswordClearTextフィールドが更新されないようです。私は、パスワードを変更し、ログオフし、新しいパスワードでログオンしてから、PasswordClearTextに元のパスワードがあることを確認して、これを確認しました。

PasswordClearTextをリセットする方法はありますか?ここで

は私のコードクリアテキストでパスワードを保存する

[HttpPost] 
[ValidateAntiForgeryToken] 
public async System.Threading.Tasks.Task<ActionResult> PasswordReset(MemberPasswordReset model) 
{ 
    ApplicationDbContext context = new ApplicationDbContext(); 
    UserStore<ApplicationUser> userStore = new UserStore<ApplicationUser>(context); 

    var UserManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
    var user = await UserManager.FindByNameAsync(model.Username); 

    string resetToken = await UserManager.GeneratePasswordResetTokenAsync(user.Id); 
    IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(user.Id, resetToken, model.Password); 

    if(passwordChangeResult.Succeeded) 
    { 
     return RedirectToAction("Index"); 
    } 

    AddErrors(passwordChangeResult);   
    return View(); 
} 
+0

私はプレーンテキストのパスワードが嫌いですが、あなたはそれを実装することに決めたようです。だから私はあなたに 'IPasswordHasher'の方向性を伝えます。 – trailmax

答えて

1

は常に悪い考えです。私はあなたの(または管理者)の生活をより簡単にするために誘惑を理解していますが、あなたのサイトを使用するユーザーには責任があります。

多くの人が怠け者で、パスワードを平文で保存して侵害された場合、複数の場所で同じパスワードを再使用します。その違反は、あなたのサイトだけではないはるかに悪いことがあります。管理者に自分のパスワードが表示されるようにすることで、プライバシーの侵害はもちろんです。

+0

私はそれを理解していますが、現場には車のクラブのための会議やニュースレターへの他のメモを盗むことはできません。すべての.Netチームがテーブルにフィールドを含めた後、アカウントを作成すると自動的に入力されます。パスワードをリセットしたときではありません。 – Caverman

+0

私はフィールドの本来の目的は、アカウントを初めて作成したときにパスワードを作成するときに、ユーザーにパスワードを送信することだと思います。あなたにメールを送る必要があるかもしれません。ユーザーがパスワードを更新すると、フィールドはもはや使用されなくなり、パスワードはそのポイントから前方に隠れたままになります。 – JanR

+0

フィールドはパスワードリセットで更新されないため、このように見えます。 – Caverman

関連する問題