private Task <ClaimsIdentity> GetClaims(AutenticarUsuarioComando comando)
        {
            var usuario = _repository.OterUsuario(comando.Email);


            if (usuario.ClaimValue == "Cliente")
            {
                ObterIDConsulta IdEmpresa = _clienteRepository.ObterID(usuario.ID);
                if (_repository.Autenticar(comando.Email, comando.Senha))
                {
                    _usuario = usuario;
                }
                _IdEmpresa = IdEmpresa;

                return(Task.FromResult(new ClaimsIdentity(
                                           new GenericIdentity(IdEmpresa.ID.ToString(), "Token"),
                                           new[] {
                    new Claim(usuario.ClaimType, usuario.ClaimValue),
                })));
            }
            if (usuario.ClaimValue == "Funcionario")
            {
                ObterIDConsulta IDFuncionario = _empresaRepository.ObterIdEmpresa(usuario.ID);

                if (_repository.Autenticar(comando.Email, comando.Senha))
                {
                    _usuario = usuario;
                }
                _IdEmpresa = IDFuncionario;

                return(Task.FromResult(new ClaimsIdentity(
                                           new GenericIdentity(IDFuncionario.ID.ToString(), "Token"),
                                           new[] {
                    new Claim(usuario.ClaimType, usuario.ClaimValue),
                })));
            }


            ObterIDConsulta ID = _empresaRepository.ObterIdEmpresa(usuario.ID);

            if (_repository.Autenticar(comando.Email, comando.Senha))
            {
                _usuario = usuario;
            }
            _IdEmpresa = ID;

            return(Task.FromResult(new ClaimsIdentity(
                                       new GenericIdentity(ID.ID.ToString(), "Token"),
                                       new[] {
                new Claim(usuario.ClaimType, usuario.ClaimValue),
            })));
        }
Ejemplo n.º 3
0
        public IComandResult Handle(TrocarSenhaUsuarioComand comand)
        {
            //verificar se tem notificação no comand
            if (!comand.IsValid())
            {
                return(new ComandResult(false, "Por favor corrija os campos abaixo", comand.Notifications));
            }

            var _usuario = _repository.Existe(comand.UsuarioId);

            if (_usuario.Login != comand.Login)
            {
                AddNotification("Usuario", "Email não encontrado,digite o email cadastrado no App");
                //return new ComandResult(false, "Email não encontrado,digite o email cadastrado no App.",new { });
            }



            //verifica se o usuário ja existe
            var usuario = _repository.Autenticar(comand.Login, comand.Senha);

            if (usuario == null)
            {
                AddNotification("Usuario", "Senha ou email inválidos!");
                //return new ComandResult(false, "Senha ou email inválidos!", Notifications);
            }
            else
            {
                var chaveSenha = Functions.GetRandomString();
                var _senha     = Crypto.EncriptarSenha(comand.SenhaNova, chaveSenha);
                usuario.TrocarSenha(_senha, chaveSenha);

                _repository.Alterar(usuario);
            }


            if (Invalid)
            {
                return(new ComandResult(false, "Por favor corrija os campos abaixo", Notifications));
            }



            return(new ComandResult(true, "Senha alterada com sucesso", new { usuario.Id, usuario.Login, usuario.Nome, usuario.SobreNome, usuario.Foto, usuario.TipoUsuario }));
        }
Ejemplo n.º 4
0
        public IActionResult Login(Usuario usuario)
        {
            try
            {
                usuario.Validate();
                if (!usuario.MensagemValidacao.Any())
                {
                    if (_usuarioRepositorio.Autenticar(usuario))
                    {
                        var claims = new List <Claim>
                        {
                            new Claim(ClaimTypes.NameIdentifier, usuario.Cpf),
                            new Claim(ClaimTypes.Email, usuario.Email),
                        };
                        var identity  = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                        var principal = new ClaimsPrincipal(identity);

                        HttpContext.SignInAsync(principal);
                        HttpContext.Session.SetString("Logado", "1");

                        return(RedirectToAction("Index", "Venda"));
                    }
                    else
                    {
                        ViewBag.Errors = new List <string>();
                        ViewBag.Errors.Add("Email ou Cpf Inválidos!");
                        return(View());
                    }
                }
                else
                {
                    ViewBag.Errors = usuario.MensagemValidacao;
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ViewBag.Errors = new List <string>();
                ViewBag.Errors.Add(ex.Message);
                return(View());
            }
        }
Ejemplo n.º 5
0
        public string Autenticar(Autenticarusuario request)
        {
            //if (request == null)
            //{
            //    throw new Exception("Autenticação zuada");
            //}

            //if (string.IsNullOrEmpty(request.login))
            //{
            //    throw new Exception("Autenticação zuada");
            //}

            //if (string.IsNullOrEmpty(request.senha))
            //{
            //    throw new Exception("Autenticação zuada");
            //}

            var response = _repositorio.Autenticar(request);

            return(response);
        }