Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改ASP.NET Core 2.x中的密码_C#_Asp.net Core 2.0_Asp.net Core Identity - Fatal编程技术网

C# 更改ASP.NET 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

如何在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.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之前必须对其进行哈希运算