C# 更改ASP.NET Core 2.x中的密码
如何在Asp core 2.x中通过管理员更改用户密码 或使用短信代码更改密码 我的示例代码:C# 更改ASP.NET Core 2.x中的密码,c#,asp.net-core-2.0,asp.net-core-identity,C#,Asp.net Core 2.0,Asp.net Core Identity,如何在Asp core 2.x中通过管理员更改用户密码 或使用短信代码更改密码 我的示例代码: if (!ModelState.IsValid) return View(model); var user = await _userManager.FindByNameAsync(model.UserName); if (user == null) return RedirectToAction("Index"); if (model.smsCode == user.SmsCod
if (!ModelState.IsValid)
return View(model);
var user = await _userManager.FindByNameAsync(model.UserName);
if (user == null)
return RedirectToAction("Index");
if (model.smsCode == user.SmsCode)
{
user.PasswordHash = model.NewPassword;
IdentityResult result = await _userManager.UpdateAsync(user);
if (result.Succeeded)
{
}
}
错误:在db中保存unhash pass我们不应该更新用户。使用纯文本的PasswordHash应该使用Hash
var user = await _userManager.FindByNameAsync(model.UserName);
if(user == null){ /**/ }
if (model.smsCode != user.SmsCode){ /**/}
// compute the new hash string
var newPassword = _userManager.PasswordHasher.HashPassword(user,newpass);
user.PasswordHash = newPassword;
var res = await _userManager.UpdateAsync(user);
if (res.Succeeded) {/**/}
else { /**/}
该错误告诉您在保存之前需要对密码进行哈希运算。保存明文密码是一个很大的禁忌。您是否试图将明文密码保存到PasswordHash字段中?我希望您在保存model.NewPassword之前必须对其进行哈希运算