예제 #1
0
 public EmailController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt)
 {
     _context         = context; // QUITAR DE AQUI
     _handler         = new clsHandlerEmailExchange();
     _jwtTokenService = jwtTokenService;
     _encrypt         = encrypt;
 }
예제 #2
0
 public MaquinesController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt, IMapper mapper)
 {
     _context         = context; // QUITAR DE AQUI
     _handler         = new clsHandlerEmailExchange();
     _jwtTokenService = jwtTokenService;
     _encrypt         = encrypt;
     _mapper          = mapper;
 }
예제 #3
0
 public LoginController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt, IConfiguration configuration)
 {
     _context         = context; // QUITAR DE AQUI
     _handler         = new clsHandlerEmailExchange();
     _jwtTokenService = jwtTokenService;
     _encrypt         = encrypt;
     _configuration   = configuration;
 }
예제 #4
0
        /// <summary>
        /// Autentificar el usuario con la base de datos y devolver el token
        /// </summary>
        /// <param name="email">Dirección de correo electronico</param>
        /// <param name="password">Contranseya de la direccion de correo electronico</param>
        private async Task <UsuariInfoDTO> AutenticarUsuarioAsync(string email, string password)
        {
            // Chequear si el email y pass es correcto en el servidor de correos
            IHandlerEmail _handler = new clsHandlerEmailExchange(email, password, email);

            if (!_handler.conectado())
            {
                return(null);                       // Email i pass incorrecto
            }
            // Encriptar la contrasenya
            SHA256 mySHA256 = SHA256Managed.Create();
            var    guid     = Guid.NewGuid();
            var    passHash = _encrypt.Encriptar(password, guid.ToString());

            // Crear o modificar el usuario autentificado
            var usuari = _context.Usuaris.FirstOrDefault(x => x.Email == email);

            if (usuari == null)
            {
                usuari       = new Usuari();
                usuari.Email = email;
            }

            usuari.Pass      = passHash;
            usuari.Caducitat = DateTime.Now.AddHours(int.Parse(_configuration["JWT:Expire"]));

            if (usuari.UsuariId > 0)
            {
                _context.Entry(usuari).State = EntityState.Modified;
            }
            else
            {
                _context.Usuaris.Add(usuari);
            }

            await _context.SaveChangesAsync();


            // Devolver un objeto tipo UsuarioInfo con toda la información necesaria para el token
            return(new UsuariInfoDTO()
            {
                Id = guid, // Clave secreta para desencriptar la contrasenya
                Email = email,
                Rol = "Usuario"
            });
        }