【发布时间】:2011-03-07 21:23:05
【问题描述】:
我正在尝试验证更改密码的用户。此 actionresult 采用的 PasswordChange 类具有 4 个属性。其中之一是我与“CurrentPassword”属性进行比较的 databasePassword,该属性确保用户只有在知道当前密码的情况下才能更改密码(网站上非常标准的程序)
我遇到的问题是数据库密码仅在 ActionResult 中设置(如图所示),但 ModelState 似乎在此之前被调用,因此它在“IsValid”上返回 false,因为即使在数据库密码已设置
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ChangePassword(PasswordChange model)
{
var User = GetPlayer().User;
model.databasePassword = User.Password;
if (ModelState.IsValid)
{
//update the users password
User.Updated = SystemDate.Current();
User.Password = model.newPassword.ToLower();
return Redirect("/Player");
}
else
{
return View(model);
}
}
我怎样才能重新评估它或让它在我想要的时候进行评估!
【问题讨论】: