コード例 #1
0
        public ActionResult ChangePassword()
        {
            int userId = CurrentHttpContext.User.Id;
            var user = db.Usuarios.Find(userId);
            if (user == null)
            {
                return HttpNotFound();
            }

            var changePasswordModel = new ChangeLoginPasswordModel()
            {
                USUUsuario = user.USUUsuario
            };

            return View(changePasswordModel);
        }
コード例 #2
0
        public ActionResult ChangePassword(ChangeLoginPasswordModel changePasswordModel)
        {
            if (ModelState.IsValid)
            {
                int userId = CurrentHttpContext.User.Id;
                var user = db.Usuarios.Find(userId);
                if (user == null)
                {
                    return HttpNotFound();
                }

                if (user.USUClave != Encryption.Rijndael.Encrypt(changePasswordModel.OldPassword))
                    ModelState["OldPassword"].Errors.Add("La contraseña actual no es valida");
                else if (user.USUClave == Encryption.Rijndael.Encrypt(changePasswordModel.CompareNewPassword))
                    ModelState["NewPassword"].Errors.Add("La contraseña actual no puede ser igual a la nueva");
                else
                {
                    bool update = db.UPDATE_UsuarioClave(userId, Encryption.Rijndael.Encrypt(changePasswordModel.NewPassword), userId, DateTime.Now, false) > 0;
                    if (update)
                    {
                        CurrentHttpContext.User.NeedChangePassword = false;
                        return RedirectToAction("Index", "Home");
                    }
                    else
                        ModelState.AddModelError("","No se ha logrado cambiar la contraseña, favor intente de nuevo mas tarde.");
                }
            }

            return View(changePasswordModel);
        }