public async Task<ActionResult> CambiarPass(CambiarPassword model) { if (ModelState.IsValid) { var result = await UserManager.RemovePasswordAsync(model.id); result = await UserManager.AddPasswordAsync(model.id, model.Password); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(model.id); Historial nuevo = new Historial("Cambió Contraseña", User.Identity.GetUserId(), "usuario", model.id, user.UserName, Request.UserHostAddress); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); TempData["Mensaje"] = "Se ha cambiado la contraseña correctamente al usuario."+user.UserName; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Editar", "Acceso", new { id = user.Id }); } else { AddErrors(result); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario TempData["Mensaje"] = "Error al cambiar la contraseña."; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Editar", "Acceso", new { id =model.id }); }
public async Task<ActionResult> Recovery(CambiarPassword model) { if (ModelState.IsValid) { var us = await UserManager.FindByNameAsync(model.username); var result = await UserManager.RemovePasswordAsync(us.Id); result = await UserManager.AddPasswordAsync(us.Id, model.Password); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(us.Id); Historial nuevo = new Historial("Cambió Contraseña", us.Id, "usuario", us.Id, user.UserName, Request.UserHostAddress); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); TempData["MensajeCambioContrasena"] = "Se ha cambiado la contraseña correctamente al usuario." + user.UserName; Conexion db = new Conexion(); List<UsuarioRecovery> listaRecovery = db.UsuarioRecovery.Where(m => m.username == model.username).ToList(); db.UsuarioRecovery.RemoveRange(listaRecovery); await db.SaveChangesAsync(); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Index","Acceso",new{returnUrl = "/"}); } else { AddErrors(result); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario TempData["Mensaje"] = "Error al cambiar la contraseña."; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Recovery", "Acceso", new { id = model.id }); }