public Usuario Autenticar(AutenticacaoDto login)
        {
            if (string.IsNullOrEmpty(login.Login))
            {
                throw new ArgumentNullException("É necessário informar o login.");
            }

            if (string.IsNullOrEmpty(login.Senha))
            {
                throw new ArgumentNullException("É necessário informar a senha.");
            }


            var usuario = contexo.Usuarios.Where(x => x.Login == login.Login).FirstOrDefault();


            if (usuario != null)
            {
                var hashSenha = Utils.GenerateSHA512String(login.Senha + usuario.Salt);

                if (hashSenha == usuario.Senha)
                {
                    return(usuario);
                }
            }
            return(null);
        }
예제 #2
0
        public async Task <IActionResult> Autenticar(AutenticacaoDto autenticacaoDto)
        {
            var retornoAutenticacao = await comandosUsuario.Autenticar(autenticacaoDto.Login, autenticacaoDto.Senha);

            if (!retornoAutenticacao.Autenticado)
            {
                return(StatusCode(401));
            }

            return(Ok(retornoAutenticacao));
        }
예제 #3
0
        public async Task <ISingleResultDto <EntityDto> > ExpirarSenha(AutenticacaoDto dto)
        {
            var evento = Mapper.Map <UsuarioSistema>(dto);

            var result = await _atualizarSenhaExpiradaUsecase.Execute(evento);

            var resultDto = new SingleResultDto <EntityDto>(result);

            resultDto.SetData(result, Mapper);

            return(resultDto);
        }
예제 #4
0
        public async Task <IActionResult> EsquecerSenha([FromBody] AutenticacaoDto dto)
        {
            try
            {
                var result = await _autenticacaoAppService.EsquecerSenha(dto);

                return(Ok(result));
            }
            catch (Exception e)
            {
                return(Ok(new SingleResultDto <AutenticacaoDto>(e)));
            }
        }
예제 #5
0
        public ActionResult Index(AutenticacaoDto model)
        {
            var retorno = _servicoAutenticacao.Autenticar(model);

            if (retorno != null)
            {
                var cookie = _servicoAutenticacao.GerarCookieComToken(retorno);
                Response.Cookies.Add(cookie);
                Session["Chave"] = ChaveAssimetrica.GetKeyPrivateFromContainer(model.Login);
                return(RedirectToAction("Index", "Home", new { Area = "Vendas" }));
            }

            return(View());
        }
        public IHttpActionResult Autenticar(AutenticacaoDto auth)
        {
            Usuario usuario;

            if (adaptador.GerenciadorUsuario.AutenticaUsuario(auth.Usuario, auth.Senha, out usuario))
            {
                return(Ok(new UsuarioDto(usuario)));
            }

            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
            {
                ReasonPhrase = "Usuário ou Senha inválidos.",
                Content      = new StringContent("Usuário ou Senha inválidos.")
            });
        }
        public void Deve_Retornar_Nao_Autorizado()
        {
            fixture._clientApi.DefaultRequestHeaders.Clear();

            var autenticacaoDto = new AutenticacaoDto()
            {
                Login = "******", Senha = "senha123"
            };

            var jsonParaPost = new StringContent(JsonConvert.SerializeObject(autenticacaoDto), UnicodeEncoding.UTF8, "application/json");

            var postResult = fixture._clientApi.PostAsync($"api/v1/autenticacao", jsonParaPost).Result;

            Assert.True(!postResult.IsSuccessStatusCode);
            Assert.True(postResult.StatusCode == HttpStatusCode.Unauthorized);
        }
예제 #8
0
        public async Task <ISingleResultDto <UsuarioDto> > GerarTokenLoginUsecase(AutenticacaoDto dto)
        {
            var result = await _gerarTokenLoginUsecase.Execute(dto.Chave, dto.Senha);

            if (result.Success)
            {
                var token = new UsuarioDto
                {
                    Token = result.User.Token
                };

                return(new SingleResultDto <UsuarioDto>(token));
            }

            return(new SingleResultDto <UsuarioDto>(result));
        }
예제 #9
0
        public IHttpActionResult Autenticar(AutenticacaoDto login)
        {
            var usuario = serviceAutenticacao.Autenticar(login);

            if (usuario == null)
            {
                return(BadRequest("Usuário ou senha incorretos."));
            }

            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Headers.Add(
                "Authorization",
                String.Format("Bearer {0}", serviceAutenticacao.GerarToken(usuario).GerarJwt()));

            return(new ResponseMessageResult(response));
        }
예제 #10
0
        public async Task <ActionResult> Token([FromBody] AutenticacaoDto dto)
        {
            var result = await _autenticacaoAppService.GerarTokenLoginUsecase(dto);

            return(Ok(result));
        }