Exemplo n.º 1
0
        public IActionResult Lista()
        {
            AutenticaModel autenticaModel;
            string         token = "";

            try {
                autenticaModel = new AutenticaModel(httpContext);

                token = autenticaModel.ObterToken();
            } catch {
                token = "";
            } finally {
                autenticaModel = null;
            }

            if (string.IsNullOrEmpty(token))
            {
                return(RedirectToAction("Sair"));
            }
            else
            {
                ViewData["Usuario"] = UsuarioNome;

                return(View());
            }
        }
        public async Task <ResultModel <TokenViewModel> > AtualizaToken(string token, string refreshToken)
        {
            ResultModel <TokenViewModel> result = new ResultModel <TokenViewModel>();

            try
            {
                ClaimsPrincipal principal = _tokenService.GetPrincipalFromExpiredToken(token);
                string          username  = principal.Identity.Name;

                AutenticaModel user = await _autenticaRepository.GetUsuario(u => u.Nome == username);

                if (user == null || user.RefreshToken != refreshToken)
                {
                    result.Inconsistencias.Add("Não foi possivel atualiza o token.");
                    return(result);
                }

                TokenViewModel jwtToken        = _tokenService.GenerateAccessToken(principal.Claims);
                string         newRefreshToken = _tokenService.GenerateRefreshToken();
                jwtToken.RefreshToken = newRefreshToken;
                user.RefreshToken     = newRefreshToken;
                await _autenticaRepository.UpdateUsuario(user);

                result.Resultado = jwtToken;
            }
            catch (Exception ex)
            {
                result.Inconsistencias.Add(ex.Message);
            }

            return(result);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Entrar(AutenticaTransfer autenticaTransfer)
        {
            AutenticaModel    autenticaModel;
            AutenticaTransfer autentica;

            try {
                autenticaModel = new AutenticaModel(httpContext);

                autentica = await autenticaModel.Autenticar(autenticaTransfer);
            } catch (Exception ex) {
                autentica = new AutenticaTransfer();

                autentica.Validacao = false;
                autentica.Erro      = true;
                autentica.IncluirMensagem("Erro em AutenticaController Consulta [" + ex.Message + "]");
            } finally {
                autenticaModel = null;
            }

            if (autentica.Erro || !autentica.Validacao || !autentica.Autenticado)
            {
                return(View("Index", autentica));
            }
            else
            {
                ViewData["Usuario"] = UsuarioNome;

                return(RedirectToAction("Lista"));
            }
        }
Exemplo n.º 4
0
        public IActionResult Sair()
        {
            AutenticaModel autenticaModel;

            autenticaModel = new AutenticaModel(httpContext);

            autenticaModel.Sair();

            return(RedirectToAction("Index"));
        }
        public async Task AddUsuario(AutenticaModel model)
        {
            try
            {
                model.Senha = _passwordHasher.GenerateIdentityV3Hash(model.Senha);
                await _context.Autentica.AddAsync(model);

                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception($"Erro para salvar o cadastro! {ex.Message}");
            }
        }
Exemplo n.º 6
0
        protected void ObterUsuario()
        {
            AutenticaModel autenticaModel;
            string         usuario = "";

            try {
                autenticaModel = new AutenticaModel(httpContext);

                usuario = autenticaModel.ObterUsuario();
            } catch {
                usuario = "";
            } finally {
                autenticaModel = null;
            }

            UsuarioNome = usuario;
        }
        public async Task UpdateUsuario(AutenticaModel usuario)
        {
            try
            {
                AutenticaModel model = await GetUsuarioById(usuario.UsuarioId);

                model.Ativo        = usuario.Ativo;
                model.Senha        = usuario.Senha;
                model.RefreshToken = usuario.RefreshToken;

                _context.Attach(model);
                _context.Entry(model).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                throw new Exception($"Erro para salvar o cadastro! {ex.Message}");
            }
        }
        public async Task <ResultModel <TokenViewModel> > Autenticar(string username, string password)
        {
            ResultModel <TokenViewModel> result = new ResultModel <TokenViewModel>();

            try
            {
                AutenticaModel user = await _autenticaRepository.GetUsuario(u => u.Nome == username);

                if (user == null || !_passwordHasher.VerifyIdentityV3Hash(password, user.Senha))
                {
                    throw new Exception("Não encontrado nenhum usuário!");
                }

                Claim[] usersClaims = new[]
                {
                    new Claim(ClaimTypes.Name, user.Nome),
                    new Claim(ClaimTypes.NameIdentifier, user.UsuarioId.ToString())
                };

                TokenViewModel jwtToken     = _tokenService.GenerateAccessToken(usersClaims);
                string         refreshToken = _tokenService.GenerateRefreshToken();
                jwtToken.RefreshToken = refreshToken;
                user.RefreshToken     = refreshToken;

                await _autenticaRepository.UpdateUsuario(user);

                result.Resultado = jwtToken;

                return(result);
            }
            catch (Exception ex)
            {
                result.Inconsistencias.Add(ex.Message);
            }

            return(result);
        }
Exemplo n.º 9
0
        public IActionResult Autenticar(AutenticaTransfer autenticaTransfer)
        {
            AutenticaModel    autenticaModel = null;
            AutenticaTransfer autentica      = null;

            try {
                autenticaModel = new AutenticaModel();

                autentica = autenticaModel.Autenticar(autenticaTransfer);

                if (!autentica.Erro)
                {
                    if (autentica.Autenticado)
                    {
                        return(Ok(autentica));
                    }
                    else
                    {
                        return(Unauthorized(autentica));
                    }
                }
                else
                {
                    return(BadRequest(autentica));
                }
            } catch (Exception ex) {
                autentica = new AutenticaTransfer();

                autentica.Erro = true;
                autentica.IncluirMensagem("Erro em AutenticaController Autenticar [" + ex.Message + "]");

                return(BadRequest(autentica));
            } finally {
                autenticaModel = null;
            }
        }