Пример #1
0
        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());
        }
Пример #2
0
        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());
        }