Пример #1
0
    private void SalvaExibeCaptcha(Guid usu_id)
    {
        if (SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.UTILIZAR_CAPTCHA_FALHA_AUTENTICACAO))
        {
            SYS_UsuarioFalhaAutenticacao entFalha = SYS_UsuarioFalhaAutenticacaoBO.InsereFalhaAutenticacaoUsuario(usu_id);

            if (entFalha.ufl_qtdeFalhas >= SYS_ParametroBO.Parametro_QtdeFalhasExibirCaptcha())
            {
                divCaptcha.Visible = true;
            }
        }
    }
Пример #2
0
    private bool VerificaDigitacaoCaptcha(Guid usu_id)
    {
        if (divCaptcha.Visible || !SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.UTILIZAR_CAPTCHA_FALHA_AUTENTICACAO))
        {
            return(false);
        }

        SYS_UsuarioFalhaAutenticacao entFalha = SYS_UsuarioFalhaAutenticacaoBO.GetEntity
                                                    (new SYS_UsuarioFalhaAutenticacao {
            usu_id = usu_id
        });

        int minutosDiferenca = SYS_ParametroBO.Parametro_IntervaloMinutosFalhaAutenticacao();

        if (entFalha.ufl_qtdeFalhas >= SYS_ParametroBO.Parametro_QtdeFalhasExibirCaptcha() &&
            entFalha.ufl_dataUltimaTentativa.AddMinutes(minutosDiferenca) >= DateTime.Now)
        {
            divCaptcha.Visible = true;
        }

        return(divCaptcha.Visible);
    }
Пример #3
0
    protected void _btnEntrar_Click(object sender, EventArgs e)
    {
        if (ValidarLogin())
        {
            try
            {
                SYS_Usuario entityUsuario = new SYS_Usuario
                {
                    ent_id = new Guid(UCComboEntidade1._Combo.SelectedValue)
                    ,
                    usu_login = _txtLogin.Text
                    ,
                    usu_senha = _txtSenha.Text
                };
                SYS_UsuarioAutenticacaoExternaBO SYS_AutenticacaoExterna = new SYS_UsuarioAutenticacaoExternaBO();
                LoginStatus status         = SYS_AutenticacaoExterna.ValidarAutenticacao(entityUsuario);
                bool        precisaCaptcha = VerificaDigitacaoCaptcha(entityUsuario.usu_id);

                if (precisaCaptcha)
                {
                    _lblMessage.Text = UtilBO.GetErroMessage("É necessário informar o código de confirmação.", UtilBO.TipoMensagem.Alerta);
                    _txtLogin.Focus();
                }
                else
                {
                    switch (status)
                    {
                    case LoginStatus.Erro:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login,
                                                        "Erro ao tentar entrar no sistema.",
                                                        entityUsuario.usu_login);
                        _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar entrar no sistema.",
                                                                 UtilBO.TipoMensagem.Erro);
                        _txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.Bloqueado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário bloqueado.",
                                                        entityUsuario.usu_login);
                        _lblMessage.Text = UtilBO.GetErroMessage("Usuário bloqueado.",
                                                                 UtilBO.TipoMensagem.Alerta);
                        _txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.NaoEncontrado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário não encontrado.",
                                                        entityUsuario.usu_login);

                        _lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.",
                                                                 UtilBO.TipoMensagem.Alerta);
                        _txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.SenhaInvalida:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha inválida.",
                                                        entityUsuario.usu_login);

                        SalvaExibeCaptcha(entityUsuario.usu_id);

                        _lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.",
                                                                 UtilBO.TipoMensagem.Alerta);
                        _txtLogin.Focus();

                        break;
                    }

                    case LoginStatus.Expirado:
                    {
                        ConfigurarTelaSenhaExpirada(entityUsuario);
                        break;
                    }

                    case LoginStatus.Sucesso:
                    {
                        SYS_UsuarioFalhaAutenticacaoBO.ZeraFalhaAutenticacaoUsuario(entityUsuario.usu_id);

                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Login efetuado com sucesso.");

                        SignHelper.AutenticarUsuario(entityUsuario);

                        LoadSession(entityUsuario);

                        RedirecionarLogin(entityUsuario.usu_id);

                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar entrar no sistema.", UtilBO.TipoMensagem.Erro);
            }
        }
    }
Пример #4
0
    protected void _btnSalvar_Click(object sender, EventArgs e)
    {
        if (ValidarAlterarSenha())
        {
            try
            {
                SYS_Usuario entityUsuario = new SYS_Usuario
                {
                    ent_id = new Guid(UCComboEntidade1._Combo.SelectedValue)
                    ,
                    usu_login = _txtLogin.Text
                };
                SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entityUsuario);

                eCriptografa criptografia = (eCriptografa)Enum.Parse(typeof(eCriptografa), Convert.ToString(entityUsuario.usu_criptografia), true);
                if (!Enum.IsDefined(typeof(eCriptografa), criptografia))
                {
                    criptografia = eCriptografa.SHA512;
                }

                if (!UtilBO.EqualsSenha(entityUsuario.usu_senha, UtilBO.CriptografarSenha(_txtSenhaAtual.Text, criptografia), criptografia))
                {
                    string mensagemSenhaAtualInvalida = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemSenhaAtualIncorreta);

                    _lblMessageAlterarSenha.Text = UtilBO.GetErroMessage(string.IsNullOrEmpty(mensagemSenhaAtualInvalida) ? "Senha atual inválida." : mensagemSenhaAtualInvalida, UtilBO.TipoMensagem.Erro);
                    _updAlterarSenha.Update();

                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro ao alterar senha. Senha atual inválida.");
                }
                else
                {
                    entityUsuario.usu_situacao      = 1;
                    entityUsuario.usu_senha         = _txtNovaSenha.Text;
                    entityUsuario.usu_dataAlteracao = DateTime.Now;
                    entityUsuario.usu_criptografia  = (byte)eCriptografa.SHA512;
                    SYS_UsuarioBO.AlterarSenhaAtualizarUsuario(entityUsuario, entityUsuario.usu_integracaoAD == (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha);

                    LoadSession(entityUsuario);
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha alterada com sucesso.");

                    string mensagemSenhaAlterada = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.LoginMensagemSenhaAlteradaSucesso);

                    __SessionWEB.PostMessages = UtilBO.GetErroMessage(string.IsNullOrEmpty(mensagemSenhaAlterada) ? "Senha alterada com sucesso." : mensagemSenhaAlterada, UtilBO.TipoMensagem.Sucesso);

                    SYS_UsuarioFalhaAutenticacaoBO.ZeraFalhaAutenticacaoUsuario(entityUsuario.usu_id);

                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Login efetuado com sucesso.");

                    SignHelper.AutenticarUsuario(entityUsuario);

                    LoadSession(entityUsuario);

                    RedirecionarLogin(entityUsuario.usu_id);
                }
            }
            catch (DuplicateNameException ex)
            {
                _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
            }
            catch (ArgumentException ex)
            {
                _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
            }
            catch (ValidationException ex)
            {
                _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);

                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar alterar a senha do usuário.", UtilBO.TipoMensagem.Erro);
                ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
            }
        }
        else
        {
            _updAlterarSenha.Update();
        }
    }
Пример #5
0
        protected void btnEntrar_Click(object sender, EventArgs e)
        {
            if (ValidarLogin())
            {
                try
                {
                    // Carrega os dados do usuário necessário para o login
                    SYS_Usuario entityUsuario = new SYS_Usuario
                    {
                        ent_id = UCComboEntidade1.Valor
                        ,
                        usu_login = (RadioButtonList1.SelectedIndex == 0
                                        ? ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, Guid.Empty)
                                        : ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_RESPONSAVEL_AREA_ALUNO, Guid.Empty)) + txtLogin.Text
                        ,
                        usu_senha = txtSenha.Text
                    };

                    // Checa as credenciais do usuário
                    LoginStatus status = SYS_UsuarioBO.LoginWEB(entityUsuario);

                    switch (status)
                    {
                    case LoginStatus.Erro:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro ao tentar entrar no sistema." + entityUsuario.usu_login);
                        lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar entrar no sistema.", UtilBO.TipoMensagem.Erro);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.Bloqueado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário bloqueado." + entityUsuario.usu_login);
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário bloqueado.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.NaoEncontrado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário não encontrado." + entityUsuario.usu_login);

                        //mostra para o usuário a mensagem abaixo
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.SenhaInvalida:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha inválida." + entityUsuario.usu_login);

                        //mostra para o usuário a mensagem abaixo
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();

                        break;
                    }

                    case LoginStatus.Expirado:
                    {
                        ConfigurarTelaSenhaExpirada(entityUsuario);
                        break;
                    }

                    case LoginStatus.Sucesso:
                    {
                        // Zera a quantidade de falhas de autenticação para o usuário.
                        SYS_UsuarioFalhaAutenticacaoBO.ZeraFalhaAutenticacaoUsuario(entityUsuario.usu_id);

                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Login efetuado com sucesso.");

                        // Autenticação SAML.
                        SYS_UsuarioBO.AutenticarUsuario(entityUsuario);

                        // Configura usuário na Session
                        LoadSession(entityUsuario);

                        // Se selecionou para logar como responsável, verifica se esse ele é responsável por um aluno só,
                        //  ou caso tenha mais, redireciona para uma tela de selação de alunos
                        if (RadioButtonList1.SelectedIndex == 1)
                        {
                            DataTable dtAlunosDoResponsavel = ACA_AlunoResponsavelBO.SelecionaAlunosPorResponsavel(entityUsuario.pes_id);

                            Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();

                            Session["Qtde_Filhos_Responsavel"] = dtAlunosDoResponsavel.Rows.Count;

                            if (dtAlunosDoResponsavel.Rows.Count > 1)
                            {
                                //Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();
                                RedirecionarLogin(true);
                                break;
                            }
                        }

                        RedirecionarLogin(false);

                        break;
                    }
                    }
                }
                catch (ValidationException ex)
                {
                    lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar entrar no sistema.", UtilBO.TipoMensagem.Erro);
                }
            }
        }