我正在编程更改 asp.net mvc 3 中的密码的选项,并且我有以下用于帐户控制器的代码:
[Authorize]
[HttpPost]
public ActionResult CambiarContraseña(CambioContraseña model)
{
if (ModelState.IsValid)
{
// ChangePassword will throw an exception rather
// than return false in certain failure scenarios.
bool cambioContraseñaCorrecto = true;
try
{
MembershipUser usuarioActual = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
cambioContraseñaCorrecto = usuarioActual.ChangePassword(model.ContraseñaVieja, model.ContraseñaNueva);
}
catch (Exception)
{
cambioContraseñaCorrecto = false;
}
if (cambioContraseñaCorrecto)
{
return RedirectToAction("CambioContraseñaCorrecto");
}
else
{
ModelState.AddModelError("", "La actual contraseña es inválida o la nueva contraseña es incorrecta.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
问题是 bool var "CambioContraseñaCorrecto" 总是错误的,我不明白为什么会这样。所以总是在我测试时,应用程序会向我打印 ModelStat 的消息,并且无法更改密码。有什么解决办法吗?