我有一个用户帐户实体,可以根据正则表达式验证密码
是否有一个我可以使用的事件,它会在保存到数据库之前将密码转换为哈希值?
我的问题是,如果我先将密码哈希,那么我就无法使用此实体进行验证。
我考虑过将验证提取到其他区域,并且只将哈希值保存到实体。
目前的流程如下
有人可以帮我解释一下密码哈希的位置吗
答案 0 :(得分:-1)
如果你使用MVC,我的方法就像 -
将正则表达式放在Account类的Password字段中。
在AccountController的Create方法中:
保存到数据库
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(User user)
{
if (ModelState.IsValid)
{
user.Password = PasswordHasher.Hash(user.Password);
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}