public async Task <IActionResult> RecuperarContrasenna(EntDireccionCorreo correo) { // Se valida que el correo este registrado... Usuario usuario = await _context.Usuario .SingleOrDefaultAsync(u => u.Correo.Equals(correo.Correo)); if (usuario == null) { ModelState.AddModelError( nameof(EntDireccionCorreo.Correo), "El correo ingresado no se encuentra registrado en nuestro sistema."); return(ValidationProblem()); } // Se genera token para recuperación de contraseña... byte[] randomBytes = new byte[72]; using (var rng = RandomNumberGenerator.Create()) { rng.GetBytes(randomBytes); } // Se graba el token de recuperación... usuario.FechaRecupContr = DateTime.Now; usuario.TokenRecupContr = Convert.ToBase64String(randomBytes); await _context.SaveChangesAsync(); EnviarCorreo enviarCorreo = new EnviarCorreo(_configuration, this); enviarCorreo.EnviarCorreoRecuperarContrasenna(usuario); return(Ok()); }
public async Task <IActionResult> EnviarCorreoVerificacion(EntDireccionCorreo correo) { // Se valida que el correo requiere la verificación de correo... Usuario usuario = await _context.Usuario .SingleOrDefaultAsync(u => u.Correo.Equals(correo.Correo)); if (usuario == null || usuario.TokenVerificador == null || usuario.TokenVerificador.Length == 0) { ModelState.AddModelError( nameof(EntDireccionCorreo.Correo), "No se requiere verificar el correo electrónico ingresado."); return(ValidationProblem()); } EnviarCorreo enviarCorreo = new EnviarCorreo(_configuration, this); enviarCorreo.EnviarCorreoVerificarDireccionCorreo(usuario); return(Ok()); }