在ASP.NET Core 2.x中更改密码

lvl*_*hdi 2 c# asp.net-core-identity asp.net-core-2.0

如何在Asp core 2.x中通过admin更改用户密码?

或使用短信代码更改密码

我的示例代码:

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)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:在数据库中保存散列传递

itm*_*nus 9

我们不应该使用纯文本更新user.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 { /**/}
Run Code Online (Sandbox Code Playgroud)