Ejemplo n.º 1
0
        public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer)
        {
            IQueryable <UsuarioEntity> query     = _contexto.Set <UsuarioEntity>();
            AutenticaTransfer          autentica = new AutenticaTransfer(autenticaTransfer);
            UsuarioEntity usuario = new UsuarioEntity();

            //-- Apelido
            query = query.Where(et => et.Apelido.Equals(autenticaTransfer.Apelido));
            //-- Senha
            query = query.Where(et => et.Senha.Equals(autenticaTransfer.Senha));

            usuario = query.SingleOrDefault();

            if ((usuario != null) &&
                (!string.IsNullOrEmpty(usuario.Apelido)) &&
                (!string.IsNullOrEmpty(usuario.Senha)))
            {
                autentica.Autenticado = true;
            }
            else
            {
                autentica.Autenticado = false;
            }
            autentica.Senha = null;

            return(autentica);
        }
Ejemplo n.º 2
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"));
            }
        }
Ejemplo n.º 3
0
 public AutenticaTransfer(AutenticaTransfer transfer) : base(transfer)
 {
     if (transfer != null)
     {
         this.Apelido     = transfer.Apelido;
         this.Senha       = transfer.Senha;
         this.Token       = transfer.Token;
         this.Autenticado = transfer.Autenticado;
     }
 }
Ejemplo n.º 4
0
        public async Task <AutenticaTransfer> Autenticar(AutenticaTransfer pAutentica)
        {
            HttpResponseMessage resposta  = null;
            AutenticaTransfer   autentica = null;
            string mensagemRetono         = null;

            try {
                resposta = await httpClient.PostAsync($"{nomeServico}",
                                                      new StringContent(JsonConvert.SerializeObject(pAutentica), Encoding.UTF8, "application/json" ));

                if (resposta.IsSuccessStatusCode)
                {
                    autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result);
                }
                else if (resposta.StatusCode == HttpStatusCode.BadRequest)
                {
                    autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result);
                }
                else if (resposta.StatusCode == HttpStatusCode.Unauthorized)
                {
                    autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result);
                }
                else
                {
                    mensagemRetono = $"Não foi possível acessar o serviço {nomeServico} Autenticar";
                }

                if (!string.IsNullOrEmpty(mensagemRetono))
                {
                    autentica = new AutenticaTransfer();

                    autentica.Autenticado = false;
                    autentica.Validacao   = false;
                    autentica.Erro        = true;
                    autentica.IncluirMensagem(mensagemRetono);
                }
            } catch (Exception ex) {
                autentica = new AutenticaTransfer();

                autentica.Autenticado = false;
                autentica.Validacao   = false;
                autentica.Erro        = true;
                autentica.IncluirMensagem("Erro em AutenticaService Autenticar [" + ex.Message + "]");
            } finally {
                resposta = null;
            }

            return(autentica);
        }
Ejemplo n.º 5
0
        public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer)
        {
            AutenticaData     autenticaData;
            AutenticaTransfer autentica;

            try {
                autenticaData = new AutenticaData(_contexto);

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

                autentica.Erro = true;
                autentica.IncluirMensagem("Erro em AutenticaDataModel Autenticar [" + ex.Message + "]");
            } finally {
                autenticaData = null;
            }

            return(autentica);
        }
Ejemplo n.º 6
0
        public async Task <AutenticaTransfer> Autenticar(AutenticaTransfer pAutentica)
        {
            AutenticaService  autenticaService;
            AutenticaTransfer autentica;

            try {
                autenticaService = new AutenticaService();

                autentica = await autenticaService.Autenticar(pAutentica);

                if (autentica != null)
                {
                    if ((autentica.Autenticado) && (!string.IsNullOrEmpty(autentica.Token)))
                    {
                        List <Claim> claims = new List <Claim>  {
                            new Claim("usuario", autentica.Apelido),
                            new Claim("token", autentica.Token)
                        };

                        ClaimsIdentity  claimsIdentity  = new ClaimsIdentity(claims, cookieRcLog);
                        ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                        await httpContext.HttpContext.Authentication.SignInAsync(cookieRcLog, claimsPrincipal);
                    }
                }
            } catch (Exception ex) {
                autentica = new AutenticaTransfer();

                autentica.Validacao = false;
                autentica.Erro      = true;
                autentica.IncluirMensagem("Erro em AutenticaModel Autenticar [" + ex.Message + "]");
            } finally {
                autenticaService = null;
            }

            return(autentica);
        }
Ejemplo n.º 7
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;
            }
        }
Ejemplo n.º 8
0
        public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer)
        {
            AutenticaDataModel autenticaDataModel;
            AutenticaBusiness  autenticaBusiness;
            AutenticaTransfer  autenticado;
            AutenticaTransfer  autenticaValidacao;
            AutenticaTransfer  autenticaRetorno;

            try {
                autenticaDataModel = new AutenticaDataModel();
                autenticaBusiness  = new AutenticaBusiness();

                autenticaValidacao = autenticaBusiness.Validar(autenticaTransfer);

                if (!autenticaValidacao.Erro)
                {
                    if (autenticaValidacao.Validacao)
                    {
                        //-- Criptografia da senha
                        string apelidoSenha = (autenticaTransfer.Apelido + autenticaTransfer.Senha);

                        string apelidoSenhaCripto = Criptografia.CriptravarSHA512(apelidoSenha);

                        autenticaValidacao.Senha = apelidoSenhaCripto;
                        //-------------------------

                        autenticado = autenticaDataModel.Autenticar(autenticaValidacao);
                    }
                    else
                    {
                        autenticado = new AutenticaTransfer(autenticaValidacao);
                    }
                }
                else
                {
                    autenticado = new AutenticaTransfer(autenticaValidacao);
                }

                if (autenticado.Validacao == true)
                {
                    if (autenticado.Autenticado == true)
                    {
                        var direitos = new [] {
                            new Claim(JwtRegisteredClaimNames.Sub, autenticaTransfer.Apelido),
                            new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
                        };

                        var chave = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("rc-chave-autenticacao"));

                        var credenciais = new SigningCredentials(chave, SecurityAlgorithms.HmacSha256);

                        var jwtSecurityToken = new JwtSecurityToken(
                            issuer: "rc-issuer",
                            audience: "rc-audience",
                            claims: direitos,
                            signingCredentials: credenciais,
                            expires: DateTime.Now.AddMinutes(30)
                            );

                        string token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);

                        autenticaRetorno = new AutenticaTransfer(autenticado);

                        autenticaRetorno.Senha = null;
                        autenticaRetorno.Token = token;
                    }
                    else     //-- não autenticado
                    {
                        autenticaRetorno = new AutenticaTransfer(autenticado);

                        autenticaRetorno.Token = null;
                        autenticaRetorno.Senha = null;

                        autenticaRetorno.IncluirMensagem("Usuário e/ou senha informado(s) inválido(s)");
                    }
                }
                else     //-- inválido
                {
                    autenticaRetorno       = new AutenticaTransfer(autenticado);
                    autenticaRetorno.Senha = null;
                }
            } catch (Exception ex) {
                autenticaRetorno = new AutenticaTransfer();

                autenticaRetorno.Erro = true;
                autenticaRetorno.IncluirMensagem("Erro em AutenticaModel Autenticar [" + ex.Message + "]");
            } finally {
                autenticaDataModel = null;
                autenticaBusiness  = null;
            }

            return(autenticaRetorno);
        }
Ejemplo n.º 9
0
        public AutenticaTransfer Validar(AutenticaTransfer autenticaTransfer)
        {
            AutenticaTransfer autenticaValidacao;

            try  {
                autenticaValidacao = new AutenticaTransfer(autenticaTransfer);

                //-- Apelido (Nome de usuário)
                if (string.IsNullOrEmpty(autenticaValidacao.Apelido))
                {
                    autenticaValidacao.IncluirMensagem("Necessário informar o Nome de Usuário");
                }
                else if ((autenticaValidacao.Apelido.Length < 3) ||
                         (autenticaValidacao.Apelido.Length > 20))
                {
                    autenticaValidacao.IncluirMensagem("Nome de Usuário deve ter entre 3 e 20 caracteres");
                }
                else if (!Validacao.ValidarCharAaN(autenticaValidacao.Apelido))
                {
                    autenticaValidacao.IncluirMensagem("Nome de Usuário possui caracteres inválidos");
                    autenticaValidacao.IncluirMensagem("Caracteres válidos: letras e números");
                }

                //-- Senha
                if (string.IsNullOrEmpty(autenticaValidacao.Senha))
                {
                    autenticaValidacao.IncluirMensagem("Necessário informar a Senha");
                }
                else if ((autenticaValidacao.Senha.Length < 5) ||
                         (autenticaValidacao.Senha.Length > 20))
                {
                    autenticaValidacao.IncluirMensagem("Senha deve ter entre 5 e 20 caracteres");
                }
                else if (!Validacao.ValidarCharAaBEN(autenticaValidacao.Senha))
                {
                    autenticaValidacao.IncluirMensagem("Senha possui caracteres inválidos");
                    autenticaValidacao.IncluirMensagem("Caracteres válidos: letras, números, espaço em branco e especiais");
                }
                else if (!Validacao.ValidarBrancoIniFim(autenticaValidacao.Senha))
                {
                    autenticaValidacao.IncluirMensagem("Senha não deve começar ou terminar com espaço em branco");
                }

                autenticaValidacao.Validacao = true;

                if (autenticaValidacao.Mensagens != null)
                {
                    if (autenticaValidacao.Mensagens.Count > 0)
                    {
                        autenticaValidacao.Validacao = false;
                    }
                }
            } catch (Exception ex) {
                autenticaValidacao = new AutenticaTransfer();

                autenticaValidacao.IncluirMensagem("Erro em AutenticaBusiness Validar [" + ex.Message + "]");
                autenticaValidacao.Erro = true;
            }

            return(autenticaValidacao);
        }