public async Task <ActionResult <Recurso> > Auth([FromBody] AuthViewModel obj)
    {
        if (!ModelState.IsValid)
        {
            return(BadRequest(ModelState));
        }

        Recurso recurso = await _unitOfWork.RecursoRepository.GetByLoginAsync(obj.Usuario);

        if (recurso == null)
        {
            return(NotFound());
        }

        bool valido = _cryptographyManager.VerifyPbkdf2(obj.Senha, recurso.Senha, recurso.Salt);

        recurso.Senha = null;
        recurso.Salt  = null;

        if (!valido)
        {
            return(NotFound());
        }
        else
        {
            int.TryParse(_configuration["Jwt:Expires"], out int jwtExpires);

            recurso.Token = TokenService.GenerateToken(recurso.Id.ToString(), _configuration["Jwt:Key"], _configuration["Jwt:Issuer"], jwtExpires);

            return(Ok(recurso));
        }
    }
示例#2
0
    public async Task <AuthResponse> Handle(AuthRequest request, CancellationToken cancellationToken)
    {
        AuthResponse result = new()
        {
            Status = OperationResult.Failed
        };

        result.Recurso = _mapper.Map <RecursoViewModel>(await _unitOfWork.RecursoRepository.GetByLoginAsync(request.Auth.Usuario));

        if (result.Recurso == null)
        {
            result.Status = OperationResult.NotFound;

            return(result);
        }

        bool success = _cryptographyManager.VerifyPbkdf2(request.Auth.Senha, result.Recurso.Senha, result.Recurso.Salt);

        result.Recurso.Senha = null;
        result.Recurso.Salt  = null;

        result.Status = success ? OperationResult.Success : OperationResult.Failed;

        return(result);
    }
}
示例#3
0
        public Recurso Autenticar(string login, string senha, out bool valido)
        {
            valido = false;

            Recurso recurso = _recursoRepository.ConsultarPorLogin(login);

            if (recurso == null)
            {
                return(null);
            }

            valido = _cryptographyManager.VerifyPbkdf2(senha, recurso.Senha, recurso.Salt);

            return(recurso);
        }
示例#4
0
        public RecursoViewModel Autenticar(string login, string senha, out bool valido)
        {
            valido = false;

            RecursoViewModel recurso = _mapper.Map <RecursoViewModel>(_recursoRepository.ConsultarPorLogin(login));

            if (recurso == null)
            {
                return(null);
            }

            if (!recurso.Ativo)
            {
                return(null);
            }

            valido = _cryptographyManager.VerifyPbkdf2(senha, recurso.Senha, recurso.Salt);

            return(recurso);
        }