Esempio n. 1
0
        public void ExecutarLogin(object obj)
        {
            var login = (string)((object[])obj)[0];
            if (string.IsNullOrEmpty(login))
            {
                MessageBox.Show("Insira um nome de login.");
                return;
            }

            var pass = ((object[])obj)[1] as PasswordBox;
            if (string.IsNullOrEmpty(pass.Password))
            {
                MessageBox.Show("Insira uma senha.");
                return;
            }

            new Task(() =>
            {
                LoginEnabled = false;
                Status = "Autenticando...";

                var model = new AutenticarUsuarioModel();
                model.Execute(new AutenticarUsuarioRequest()
                {
                    Login = login, Senha = pass.Password
                });

                if (model.Response.Status != Base.ExecutionStatus.Success)
                    MessageBox.Show(string.Concat("Erro ao autenticar:\n", model.Response.ErrorMessage));
                else if (!model.Response.Existe)
                    MessageBox.Show(string.Concat("Usuário não existe."));
                else if (!model.Response.Autenticado)
                    MessageBox.Show(string.Concat("Usuário e/ou senha inválidos."));
                else
                {
                    Flag = string.Concat(Flag,"x");
                    Context.NivelAcessoLogado = new Context.NivelAcesso()
                    {
                        Administrador = model.Response.NivelAcesso.Administrador,
                        Cadastro = model.Response.NivelAcesso.Cadastro,
                        Consulta = model.Response.NivelAcesso.Consulta,
                        Nome = model.Response.NivelAcesso.Nome
                    };
                }

                Status = string.Empty;
                LoginEnabled = true;
            }).Start();
        }
        [HttpPost] //recebe o SUBMIT do formulário
        public IActionResult Login(AutenticarUsuarioModel model)
        {
            //verificar se todos os campos do forumlario passaram nas validações
            if (ModelState.IsValid)
            {
                try
                {
                    //buscar usuario no banco de dados atraves do email e senha
                    var usuario = usuarioRepository.Find(model.Email, mD5Encrypt.GenerateHash(model.Senha));

                    //verificar se o usuario foi encontrado
                    if (usuario != null)
                    {
                        //gerando credencial para o usuario logado
                        var identity = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.Name, usuario.Email),      //nome de usuário
                            new Claim(ClaimTypes.Role, usuario.Perfil.Nome) //perifl
                        },
                                                          CookieAuthenticationDefaults.AuthenticationScheme);

                        //realizar a autenticação
                        var autenticacao = new ClaimsPrincipal(identity);
                        HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, autenticacao);

                        return(RedirectToAction("Index", "AreaRestrita"));
                    }
                    else
                    {
                        TempData["Mensagem"] = "Acesso Negado. Usuário inválido.";
                    }
                }
                catch (Exception e)
                {
                    TempData["Mensagem"] = "Ocorreu um erro: " + e.Message;
                }
            }
            return(View());
        }
Esempio n. 3
0
        public IActionResult Login(AutenticarUsuarioModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var usuario = usuariorepository.Find
                                      (model.Email, mD5Encrypt.GenerateHash(model.Senha));

                    if (usuario != null)
                    {
                        var identity = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.Name, usuario.Email),

                            new Claim(ClaimTypes.Role, usuario.Perfil.Nome)
                        },
                                                          CookieAuthenticationDefaults.AuthenticationScheme);

                        var autenticacao = new ClaimsPrincipal(identity);
                        HttpContext.SignInAsync
                            (CookieAuthenticationDefaults
                            .AuthenticationScheme, autenticacao);

                        return(RedirectToAction("Index", "AreaRestrita"));
                    }
                    else
                    {
                        TempData["Mensagem"] = "Acesso negado. Usuário inválido.";
                    }
                }
                catch (Exception ex)
                {
                    TempData["Mensagem"] = "Ocorreu um erro: " + ex.Message;
                }
            }

            return(View());
        }