public async Task<IActionResult> ChangePassword(ChangePasswordViewModel model) { if (!ModelState.IsValid) { return View(model); } var user = await GetCurrentUserAsync(); if (user != null) { var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent: false); return RedirectToAction(nameof(Index), new { Message = ManageMessageId.ChangePasswordSuccess }); } AddErrors(result); return View(model); } return RedirectToAction(nameof(Index), new { Message = ManageMessageId.Error }); }
public async Task<ActionResult> ChangePassword(ChangePasswordViewModel model) { if (!ModelState.IsValid) { return View(model); } var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user != null) { await SignInAsync(user, isPersistent: false); } return RedirectToAction("Index", new { Message = ManageMessageId.ChangePasswordSuccess }); } AddErrors(result); return View(model); }
public async Task<ActionResult> ChangePassword(ChangePasswordViewModel model) { var db = new inf245netsoft(); string correo = User.Identity.Name; CuentaUsuario cliente = db.CuentaUsuario.Where(c => c.correo == correo).First(); if (cliente.contrasena == model.OldPassword) { if (cliente.contrasena != model.NewPassword) { if (model.NewPassword == model.ConfirmPassword) { var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); cliente.contrasena = model.NewPassword; db.SaveChanges(); TempData["tipo"] = "alert alert-success"; TempData["message"] = "Contraseña cambiada Exitosamente"; if (user != null) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); } /*Aca deberia retornarte a MiCuenta de CuentaUsuario*/ return RedirectToAction("MiCuenta", "CuentaUsuario"); } else { ModelState.AddModelError("NewPassword", "Las contraseñas deben tener 6 caracteres como mínimo y una combinación de caracteres especiales, letras, letras mayúsculas y números"); } } else { //cuando la contraseña nueva y la confirmacion no son iguales ModelState.AddModelError("ConfirmPassword", "Las contraseñas no coinciden"); } } else { //contrseña actual igual a la contraseña nueva ModelState.AddModelError("NewPassword", "Ingrese una contraseña diferente a la actual."); /*var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (!result.Succeeded) { ModelState.AddModelError("NewPassword", "Las contraseñas deben tener 6 caracteres como mínimo y una combinación de caracteres especiales, letras, letras mayúsculas y números"); }*/ } } else { //contreña actual diferente a la ingresa ModelState.AddModelError("OldPassword", "Contraseña ingresada no es correcta"); } return View(model); }