public async Task <IActionResult> OnPostAsync() { if (email == null) { Mensaje = "Debe ingresar un email para poder enviar su código de recuperación"; return(Page()); } Usuario Usuario = _context.Usuarios .Include(u => u.Empleado) .ThenInclude(e => e.IdPersonaNavigation) .Where(u => u.Correo == email) .FirstOrDefault(); if (Usuario == null) { Mensaje = "El correo proporcionado no está vinculado a ninguna cuenta"; return(Page()); } HttpContext.Session.SetString("email", Usuario.Correo); string sql = "UPDATE recuperacioncuenta r set r.Estado = @Estado Where IdUsuario = @IdUsuario "; var EstadoParam = new MySqlParameter("@Estado", "1"); var IdUsuarioParam = new MySqlParameter("@IdUsuario", Usuario.Id); _context.Database.ExecuteSqlCommand(sql, EstadoParam, IdUsuarioParam); string recoveryCode = Encrypted.CreatePassword(8); Recuperacioncuenta rec = new Recuperacioncuenta { IdUsuario = Usuario.Id, //all codes generated will be 8 characteres Codigo = recoveryCode, FechaEnvio = DateTime.Now, //mark as enabled for use Estado = 1, FechaRecuperacion = null }; _context.Recuperacioncuenta.Add(rec); SendCodeForEmail(email, recoveryCode, Usuario); await _context.SaveChangesAsync(); return(RedirectToPage("/Welcome/LoginWithCode")); }