0

我正在编程更改 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 的消息,并且无法更改密码。有什么解决办法吗?

4

0 回答 0