Beispiel #1
0
        public async Task <ActionResult> CambiarContraseña(CambiarContraseñaViewModel model)
        {
            bool hasPassword = HasPassword();

            ViewBag.HasLocalPassword = hasPassword;
            ViewBag.ReturnUrl        = Url.Action("CambiarContraseña");
            if (hasPassword)
            {
                if (ModelState.IsValid)
                {
                    IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.ContraseñaActual, model.ContraseñaNueva);

                    if (result.Succeeded)
                    {
                        TempData["exito"] = ManageMessageId.ExitoCambioContraseña;
                        return(RedirectToAction("CambiarContraseña"));
                    }
                    AddErrors(result);
                }
            }
            else
            {
                // User does not have a password so remove any validation errors caused by a missing OldPassword field
                ModelState state = ModelState["ContraseñaActual"];
                if (state != null)
                {
                    state.Errors.Clear();
                }

                if (ModelState.IsValid)
                {
                    IdentityResult result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.ContraseñaNueva);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("CambiarContraseña", new { Message = ManageMessageId.ExitoCrearContraseña }));
                    }
                    AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public IActionResult CambiarContraseña(CambiarContraseñaViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user      = _um.FindByNameAsync(User.Identity.Name).Result;
                var resultado = _um.ChangePasswordAsync(user, vm.ContrasenaActual, vm.ContrasenaNueva);

                if (resultado.Result == IdentityResult.Success)
                {
                    HttpContext.Session.SetString("valida", "Su contraseña se Cambió con exito");
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    foreach (var error in resultado.Result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(vm));
        }
Beispiel #3
0
        public async Task <IActionResult> CambiarContraseña(CambiarContraseñaViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(RedirectToAction("Login"));
                }

                var result = await userManager.ChangePasswordAsync(user, model.Actual, model.NuevaContrasena);

                if (!result.Succeeded)
                {
                    foreach (var error in result.Errors)
                    {
                        if (error.Description == "Incorrect password.")
                        {
                            ModelState.AddModelError(string.Empty, "Contraseña actual incorrecta.");
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                    return(View());
                }


                await signInManager.RefreshSignInAsync(user);

                return(View("ContraseñaCambiada"));
            }

            return(View(model));
        }