C# 代码优先-验证密码并对同一实体进行哈希 代码优先 实体框架 C Visual Studio 2012
我有一个用户帐户实体,它根据正则表达式验证密码 在保存到数据库之前,我是否可以使用一个事件将密码转换为哈希值 我的问题是,如果我先散列密码,那么我无法使用此实体进行验证 我曾考虑将验证提取到另一个区域,只将散列值保存到实体 电流如下所示 用户输入新帐户的详细信息 已创建用户帐户实体 使用DataAnnotation验证实体 密码散列 保存到数据库的实体C# 代码优先-验证密码并对同一实体进行哈希 代码优先 实体框架 C Visual Studio 2012,c#,entity-framework,code-first,password-protection,C#,Entity Framework,Code First,Password Protection,我有一个用户帐户实体,它根据正则表达式验证密码 在保存到数据库之前,我是否可以使用一个事件将密码转换为哈希值 我的问题是,如果我先散列密码,那么我无法使用此实体进行验证 我曾考虑将验证提取到另一个区域,只将散列值保存到实体 电流如下所示 用户输入新帐户的详细信息 已创建用户帐户实体 使用DataAnnotation验证实体 密码散列 保存到数据库的实体 有人能帮我想一想密码散列应该放在哪里吗如果你使用的是MVC,我的方法可能是- 将正则表达式放在Account类的Password字段中 在Acc
有人能帮我想一想密码散列应该放在哪里吗如果你使用的是MVC,我的方法可能是- 将正则表达式放在Account类的Password字段中 在AccountController创建方法中: 检查模型状态是否有效-这将验证正则表达式和 所有其他必填字段。 调用哈希方法,并用account对象上的哈希密码替换现有的纯文本密码 保存到数据库
[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);
}