Ejemplo n.º 1
0
        public async Task <_ServiceResponse <string> > Login(CAD_usuarioInserirDTO cAD_usuarioDTO)
        {
            _ServiceResponse <string> _serviceResponse = new _ServiceResponse <string>();

            try
            {
                CAD_pessoa  cAD_pessoa  = _dataContext.CAD_Pessoa.FirstOrDefault(x => x.Email == cAD_usuarioDTO.Email);
                CAD_Usuario cAD_Usuario = await _dataContext.CAD_usuario.FirstOrDefaultAsync(x => x.CAD_pessoa.Id == cAD_pessoa.Id);

                if (cAD_Usuario.Equals(null))
                {
                    _serviceResponse.Success = false;
                    _serviceResponse.Message = UsuarioMensagem.UsuarioNaoEncontrado();
                    return(_serviceResponse);
                }
                else if (!VerificarPasswordHash(cAD_usuarioDTO.Senha, cAD_Usuario.SenhaHash, cAD_Usuario.SenhaSalt))
                {
                    _serviceResponse.Success = false;
                    _serviceResponse.Message = UsuarioMensagem.SenhaInvalida();
                    return(_serviceResponse);
                }

                _serviceResponse.Data = CreateToken(cAD_Usuario);
            }
            catch (Exception ex)
            {
                _serviceResponse.Success = false;
                _serviceResponse.Message = ex.Message;
            }

            return(_serviceResponse);
        }
Ejemplo n.º 2
0
        private string CreateToken(CAD_Usuario cAD_Usuario)
        {
            List <Claim> claim = new List <Claim>()
            {
                new Claim(ClaimTypes.NameIdentifier, cAD_Usuario.Id.ToString()),
            };

            SymmetricSecurityKey systemSecurityKey = new SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(_iConfiguration.GetSection("AppSettings").GetSection("Token").Value)
                );

            SigningCredentials signingCredentials = new SigningCredentials(systemSecurityKey, SecurityAlgorithms.HmacSha512Signature);

            SecurityTokenDescriptor securityTokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claim),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = signingCredentials
            };

            JwtSecurityTokenHandler jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
            SecurityToken           securityToken           = jwtSecurityTokenHandler.CreateToken(securityTokenDescriptor);

            return(jwtSecurityTokenHandler.WriteToken(securityToken));
        }
Ejemplo n.º 3
0
        public async Task <_ServiceResponse <CAD_usuarioInserirDTO> > Registrar(CAD_usuarioInserirDTO cAD_usuarioDTO)
        {
            CAD_Usuario cAD_usuario = new CAD_Usuario();
            _ServiceResponse <CAD_usuarioInserirDTO> _serviceResponse = new _ServiceResponse <CAD_usuarioInserirDTO>();

            try
            {
                if (await Existe(cAD_usuarioDTO))
                {
                    _serviceResponse.Success = false;
                    _serviceResponse.Message = UsuarioMensagem.UsuarioJaCadastrado();
                    return(_serviceResponse);
                }

                SenhaHashUtil.CriarSenhaHash(cAD_usuarioDTO.Senha, out byte[] senhaHash, out byte[] senhaSalt);
                cAD_usuario.SenhaHash  = senhaHash;
                cAD_usuario.SenhaSalt  = senhaSalt;
                cAD_usuario.CAD_pessoa = new CAD_pessoa
                {
                    Nome  = cAD_usuarioDTO.Nome,
                    Email = cAD_usuarioDTO.Email
                };

                await _dataContext.CAD_usuario.AddAsync(cAD_usuario);

                await _dataContext.SaveChangesAsync();

                _serviceResponse.Data    = cAD_usuarioDTO;
                _serviceResponse.Message = UsuarioMensagem.SucessoCadastro();
                return(_serviceResponse);
            }
            catch (Exception ex)
            {
                _serviceResponse.Success = false;
                _serviceResponse.Message = ex.Message;
                return(_serviceResponse);
            }
        }