public async Task <IActionResult> Recuperacion(string token) { RecuperacionViewModel model = new RecuperacionViewModel(); model.Token = token; return(View(model)); }
public async Task <IActionResult> Recuperacion(RecuperacionViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var usuario = await _context.RecuperaContrasenias.Include(u => u.IdUsuarioNavigation) .FirstOrDefaultAsync(u => u.Token == model.Token); if (usuario != null) { if (usuario.IdUsuarioNavigation != null) { Usuario user = usuario.IdUsuarioNavigation; user.Salt = UtilsMethods.GenerarSalt(); user.Contrasenia = CryptoHelper.Crypto.HashPassword(model.Contrasenia + user.Salt); user.FechaModifica = DateTime.Now; user.IpModifica = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); usuario.Token = "Expired"; _context.Update(usuario); _context.Update(user); await _context.SaveChangesAsync(); ViewBag.Message = "Contraseña modificada con éxito"; return(View(nameof(Index))); } } else { ViewBag.Error = "Token no válido"; return(View("Index")); } return(View(model)); }