本文介绍了ASP.NET 身份重置密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在新的 ASP.NET Identity 系统中获取用户的密码?或者如何在不知道当前设置的情况下重置(用户忘记密码)?
How can I get the password of a user in the new ASP.NET Identity system? Or how can I reset without knowing the current one (user forgot password)?
推荐答案
在当前版本
假设您已经处理了重置忘记密码请求的验证,请使用以下代码作为示例代码步骤.
Assuming you have handled the verification of the request to reset the forgotten password, use following code as a sample code steps.
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 Nightly Build 中
该框架已更新,可与 Token 一起使用,以处理 ForgetPassword 等请求.发布后,预计会提供简单的代码指南.
The framework is updated to work with Token for handling requests like ForgetPassword. Once in release, simple code guidance is expected.
更新:
本次更新只是为了提供更清晰的步骤.
This update is just to provide more clear steps.
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);
这篇关于ASP.NET 身份重置密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!