1. ホーム
  2. asp.net

[解決済み] ASP.NET Identityのパスワードリセット

2022-09-28 07:49:21

質問

新しいASP.NET Identityシステムでユーザーのパスワードを取得するにはどうしたらよいですか。または、現在のものを知らずにリセットする方法 (user forgot password) はありますか?

どのように解決するのですか?

現在のリリースでは

パスワードを忘れたときのリセット要求の検証を行ったと仮定して、次のコードをサンプルコードとして使用してください。

ApplicationDbContext =new ApplicationDbContext()
String userId = "<YourLogicAssignsRequestedUserId>";
String newPassword = "<PasswordAsTypedByUser>";
ApplicationUser cUser = UserManager.FindById(userId);
String hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
UserStore<ApplicationUser> store = new UserStore<ApplicationUser>();            
store.SetPasswordHashAsync(cUser, hashedNewPassword);

AspNetナイトリービルドでは

ForgetPasswordのようなリクエストを処理するために、フレームワークはTokenで動作するように更新されます。リリースされたら、簡単なコードガイダンスが期待されます。

更新しました。

このアップデートは、より明確な手順を提供するためだけのものです。

ApplicationDbContext context = new ApplicationDbContext();
UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(context);
UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
String userId = User.Identity.GetUserId();//"<YourLogicAssignsRequestedUserId>";
String newPassword = "test@123"; //"<PasswordAsTypedByUser>";
String hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);                    
ApplicationUser cUser = await store.FindByIdAsync(userId);
await store.SetPasswordHashAsync(cUser, hashedNewPassword);
await store.UpdateAsync(cUser);