【发布时间】:2015-04-09 22:30:54
【问题描述】:
MVC5 以明文形式存储我的密码。我不想使用默认的散列算法,因为我需要改用e.Encrypt()。我正在创建一个注册函数,在使用TryUpdateModel 之前,我需要知道如何编辑来自FormCollection 的值。
代码如下:
[HttpPost]
public ActionResult Register([Bind(Include = "User,Pass,Email")] FormCollection form)
{
var user = new Users();
string Hash = e.Encrypt(form["Pass"]); // Gets set.
if (TryUpdateModel(user, form))
{
context.Entry(user).State = EntityState.Added;
context.SaveChanges();
return RedirectToAction("Login", "Account");
}
return View();
}
我从高处到低处都找遍了,我找到的一切都与我的需求无关。
我试过这个:
form["Password"] = e.Encrypt(form["Password"])
...并且可以编译,但是在调试时,该值永远不会被设置。 e.Encrypt() 确实是一个函数,所以不是这样。
我做错了什么?
【问题讨论】:
-
使用模型绑定和强类型模型而不是
FormCollection。 -
能否将您的评论建议转换成代码?谢谢。
标签: c# asp.net-mvc-5 entity-framework-6