【发布时间】:2022-09-27 20:22:11
【问题描述】:
我正在尝试使用实体框架上的 LINQ 查询来更新我的数据库。在我的密码更改表单上,我希望用户插入他们当前的密码,然后对其进行加盐和哈希处理,以确认其相等。
如果密码匹配,我有第二个输入,用户在其中输入他们想要的新密码,这会被散列并用当前密码更改。
这是代码示例
public async Task<IActionResult> OnPostAsync()
{
string currentuser = User.Identity.Name;
var user = _context.User.Where(a => a.Username == currentuser).FirstOrDefault()!;
string saltedpass = Password + user.Salt;
if (Hash(saltedpass) == user.Hash)
{
user.Hash = Hash(NewPassword + user.Salt);
//update old password with new
return RedirectToPage(\"/Index\");
}
else
{
//show error
TempData[\"PasswordsDontMatch\"] = \"The password is not correct.\";
return Page();
}
}
重定向仅用于测试目的,我的问题是如何通过 LINQ 使用新密码更新用户的当前密码?
-
您需要告诉 EF 使用
await _context.SaveChangesAysnc()保留更改
标签: .net entity-framework linq dbcontext