管理员重置密码-没有电子邮件链接只有管理员可以重置密码,我从MVC管理员重置用户密码中得到了这段代码,但在我的项目中,我在行上得到了一个错误
await store.SetPasswordHashAsync(cUser, hashedNewPassword);
代码:
//
// POST: /Account/ResetPassword
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
{
ApplicationDbContext context = new ApplicationDbContext();
UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(context);
UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser> (store);
string userId = model.Id;
string newPassword = model.NewPassword;
string hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
ApplicationUser cUser = await store.FindByIdAsync(userId);
await store.SetPasswordHashAsync(cUser, hashedNewPassword);
await store.UpdateAsync(cUser);
return RedirectToAction("Index");
}
在此处输入图像描述
查看重置密码的代码
EDIT:在看到视图后,您可以做的事情是检查视图是否真的得到了ID。如果控制器给出了ID,请检查控制器的[get]操作,我要检查的一件事是暂时更改:
@Html.HiddenFor()
至
@Html.TextBoxFor()
然后刷新。
如果您处于调试模式,您也可以在断点窗口中检查id的值