- 代码优先
- 实体框架
- C# 视觉工作室 2012
我有一个根据正则表达式验证密码的用户帐户实体
有没有我可以使用的事件在保存到数据库之前将密码转换为哈希值?
我的问题是,如果我先对密码进行哈希处理,那么我无法使用该实体进行验证。
我考虑过将验证提取到不同的区域,并且只将散列值保存到实体中。
目前的流程如下
- 用户输入新帐户详细信息
- 已创建用户帐户实体
- 使用数据注释验证的实体
- 密码散列
- 实体保存到数据库
有人可以帮我想想在哪里放置密码散列
我有一个根据正则表达式验证密码的用户帐户实体
有没有我可以使用的事件在保存到数据库之前将密码转换为哈希值?
我的问题是,如果我先对密码进行哈希处理,那么我无法使用该实体进行验证。
我考虑过将验证提取到不同的区域,并且只将散列值保存到实体中。
目前的流程如下
有人可以帮我想想在哪里放置密码散列
如果您使用的是 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);
}