Example #1
0
        private void LoadSession(SYS_Usuario entityUsuario)
        {
            __SessionWEB.__UsuarioWEB.Usuario     = entityUsuario;
            __SessionWEB.__UsuarioWEB.responsavel = RadioButtonList1.SelectedIndex == 1;
            if (__SessionWEB.__UsuarioWEB.responsavel)
            {
                SYS_Usuario entityUsuarioAluno = new SYS_Usuario
                {
                    ent_id = UCComboEntidade1.Valor
                    ,
                    usu_login = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) + txtLogin.Text
                };

                SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entityUsuarioAluno);
                __SessionWEB.__UsuarioWEB.pes_idAluno = entityUsuarioAluno.pes_id;
            }

            // Carrega grupos do usuário
            IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(__SessionWEB.__UsuarioWEB.Usuario.usu_id, ApplicationWEB.AreaAlunoSistemaID);

            // Verifica se foi carregado os grupos do usuário
            if (list.Count > 0)
            {
                __SessionWEB.__UsuarioWEB.Grupo = list[0];
            }
            else
            {
                throw new ValidationException("Não foi possível atender a solicitação, nenhum grupo de usuário encontrado.");
            }

            // Armazena o cid_id referente a entidade do usuário na Session
            Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(__SessionWEB.__UsuarioWEB.Usuario.ent_id);
            SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id, ene_id = ene_id
            };

            SYS_EntidadeEnderecoBO.GetEntity(entityEntidadeEndereco);

            END_Endereco entityEndereco = new END_Endereco {
                end_id = entityEntidadeEndereco.end_id
            };

            END_EnderecoBO.GetEntity(entityEndereco);
            __SessionWEB._cid_id = entityEndereco.cid_id;

            // Armazena o nome da pessoa ou o login do usuário na Session
            PES_Pessoa EntityPessoa = new PES_Pessoa {
                pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
            };

            PES_PessoaBO.GetEntity(EntityPessoa);
            __SessionWEB.UsuarioLogado = string.IsNullOrEmpty(EntityPessoa.pes_nome) ? __SessionWEB.__UsuarioWEB.Usuario.usu_login : EntityPessoa.pes_nome;
        }
Example #2
0
        public HttpResponseMessage PostLogin(Usuario usuario)
        {
            try
            {
                var user = new SYS_Usuario {
                    usu_login = usuario.login, usu_senha = usuario.senha, ent_id = usuario.entidade
                };
                LoginStatus status = SYS_UsuarioBO.ValidarLogin(user);

                if (status == LoginStatus.Sucesso)
                {
                    if (SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(user))
                    {
                        var grupos = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(user.usu_id, ApplicationWEB.SistemaID);
                        if (grupos.Count > 0)
                        {
                            var grupo = grupos.First();
                            Dictionary <string, object> dic = new Dictionary <string, object>();
                            dic.Add("login", user.usu_login);
                            dic.Add("entity", user.ent_id);
                            dic.Add("group", grupo.gru_id);

                            var jwtKey            = System.Configuration.ConfigurationManager.AppSettings["jwtKey"];
                            SymmetricAlgorithm sa = new SymmetricAlgorithm(SymmetricAlgorithm.Tipo.TripleDES);

                            PES_Pessoa entityPessoa = new PES_Pessoa {
                                pes_id = user.pes_id
                            };
                            PES_PessoaBO.GetEntity(entityPessoa);

                            bool docente = false;
                            if (grupo.vis_id == SysVisaoID.Individual)
                            {
                                // Carrega a entidade docente de acordo com a pessoa do usuário logado.
                                ACA_Docente entityDocente;
                                ACA_DocenteBO.GetSelectBy_Pessoa(user.ent_id, user.pes_id, out entityDocente);
                                docente = entityDocente.doc_id > 0;
                            }

                            UsuarioLogado usuarioLogado = new UsuarioLogado {
                                grupo   = grupos.First().gru_nome,
                                nome    = (string.IsNullOrEmpty(entityPessoa.pes_nome) ? user.usu_login : entityPessoa.pes_nome),
                                docente = docente,
                                token   = JWT.JsonWebToken.Encode(dic, sa.Decrypt(jwtKey), JWT.JwtHashAlgorithm.HS256)
                            };

                            return(Request.CreateResponse(HttpStatusCode.OK, usuarioLogado));
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Usuário não está vinculado a um grupo"));
                        }
                    }
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Usuário não encontrado"));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Usuário ou senha inválidos"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Example #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            try
            {
                //#region Trace
                //// ***** TRACE *****
                //// Write a trace message
                //if (Trace.IsEnabled)
                //{
                //    // Forms
                //    if (HttpContext.Current.User != null)
                //    {
                //        Trace.Write("HttpContext.Current.User", HttpContext.Current.User.ToString());
                //        Trace.Write("HttpContext.Current.User.Identity", HttpContext.Current.User.Identity.ToString());
                //        if (HttpContext.Current.User.Identity is FormsIdentity)
                //        {
                //            Trace.Write("HttpContext.Current.User.Identity.IsAuthenticated", HttpContext.Current.User.Identity.IsAuthenticated.ToString());
                //            if (HttpContext.Current.User.Identity.IsAuthenticated)
                //            {
                //                FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
                //                Trace.Write("FormsIdentity.Ticket.Name", id.Ticket.Name);
                //                Trace.Write("FormsIdentity.Ticket.IssueDate", id.Ticket.IssueDate.ToString());
                //            }
                //        }
                //    }
                //    else
                //    {
                //        Trace.Write("HttpContext.Current.User", "NULL");
                //    }

                //    // Session
                //    if(__SessionWEB.__UsuarioWEB.Usuario != null)
                //    {
                //        Trace.Write("__SessionWEB.__UsuarioWEB.Usuario.usu_login", __SessionWEB.__UsuarioWEB.Usuario.usu_login);
                //        Trace.Write("__SessionWEB.__UsuarioWEB.Usuario.usu_login", __SessionWEB.__UsuarioWEB.Usuario.ent_id.ToString());
                //    }
                //    else
                //    {
                //        Trace.Write("__SessionWEB.__UsuarioWEB.Usuario", "NULL");
                //    }
                //}
                //// ***** FIM *****
                //#endregion

                // Verifica se usuário está autenticado
                if (UserIsAuthenticated())
                {
                    __SessionWEB.__UsuarioWEB.responsavel = false;

                    // Carrega grupos do usuário
                    IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(
                        __SessionWEB.__UsuarioWEB.Usuario.usu_id
                        , ApplicationWEB.AreaAlunoSistemaID);

                    // Verifica se foi carregado os grupos do usuário
                    if (list.Count > 0)
                    {
                        // Verifica se usuário logado possui um único grupo para carregar na Session,
                        // caso possua vários grupos será necessário selecionar apenas um grupo
                        if (list.Count == 1)
                        {
                            __SessionWEB.__UsuarioWEB.Grupo = list[0];

                            HttpContext.Current.User.Identity.AddGrupoId(Request, __SessionWEB.__UsuarioWEB.Grupo.gru_id.ToString());
                            //// Realiza autenticação do usuário no Sistema Gestão Acadêmica
                            //SYS_UsuarioBO.AutenticarUsuario(__SessionWEB.__UsuarioWEB.Usuario, __SessionWEB.__UsuarioWEB.Grupo);

                            ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, String.Format("Autenticação do usuário ( {0} ) com grupo ( {1} ) no sistema ( {2} ).", __SessionWEB.__UsuarioWEB.Usuario.usu_login, __SessionWEB.__UsuarioWEB.Grupo.gru_nome, __SessionWEB.TituloSistema));

                            //Response.Redirect("~/Index.aspx", false);
                            Response.Redirect("~/Login.aspx", false);
                            HttpContext.Current.ApplicationInstance.CompleteRequest();
                        }
                        else
                        {
                            rptGrupos.DataSource = list;
                            rptGrupos.DataBind();
                            divGrupos.Visible = true;
                        }
                    }
                    else
                    {
                        throw new ValidationException("Não foi possível atender a solicitação, nenhum grupo de usuário encontrado.");
                    }
                }
                else
                {
                    throw new ValidationException("O usuário não tem permissão de acesso ao sistema.");
                }
            }
            catch (ValidationException ex)
            {
                lblMessage.Text   = UtilBO.GetErroMessage(ex.Message + "<br />Clique no botão voltar e tente novamente.", UtilBO.TipoMensagem.Alerta);
                btnVoltar.Visible = true;
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text   = UtilBO.GetErroMessage("Não foi possível atender a solicitação.<br />Clique no botão voltar e tente novamente.", UtilBO.TipoMensagem.Erro);
                btnVoltar.Visible = true;
            }
        }
    }
Example #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            try
            {
                // Verifica se usuário está autenticado
                if (UserIsAuthenticated())
                {
                    // Carrega grupos do usuário
                    IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(
                        __SessionWEB.__UsuarioWEB.Usuario.usu_id
                        , ApplicationWEB.SistemaID);

                    // Verifica se foi carregado os grupos do usuário
                    if (list.Count > 0)
                    {
                        // Verifica se usuário logado possui um único grupo para carregar na Session,
                        // caso possua vários grupos será necessário selecionar apenas um grupo
                        if (list.Count == 1)
                        {
                            __SessionWEB.__UsuarioWEB.Grupo = list[0];

                            LoadSessionSistema();
                            // Realiza autenticação do usuário no Sistema Administrativo

                            //SYS_UsuarioBO.AutenticarUsuario(__SessionWEB.__UsuarioWEB.Usuario, __SessionWEB.__UsuarioWEB.Grupo);

                            SignHelper.AutenticarUsuario(__SessionWEB.__UsuarioWEB.Usuario, __SessionWEB.__UsuarioWEB.Grupo);

                            ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, String.Format("Autenticação do usuário ( {0} ) com grupo ( {1} ) no sistema ( {2} ).", __SessionWEB.__UsuarioWEB.Usuario.usu_login, __SessionWEB.__UsuarioWEB.Grupo.gru_nome, __SessionWEB.TituloSistema));

                            Response.Redirect("~/Index.aspx", false);
                            HttpContext.Current.ApplicationInstance.CompleteRequest();
                        }
                        else
                        {
                            rptGrupos.DataSource = list;
                            rptGrupos.DataBind();
                            divGrupos.Visible = true;
                        }
                    }
                    else
                    {
                        throw new ValidationException("Não foi possível atender a solicitação, nenhum grupo de usuário encontrado.<br />Clique no botão voltar e tente novamente.");
                    }
                }
                else
                {
                    throw new ValidationException("O usuário não tem permissão de acesso ao sistema.<br />Clique no botão voltar e tente novamente.");
                }
            }
            catch (ValidationException ex)
            {
                lblMessage.Text   = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                btnVoltar.Visible = true;
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text   = UtilBO.GetErroMessage("Não foi possível atender a solicitação.<br />Clique no botão voltar e tente novamente.", UtilBO.TipoMensagem.Erro);
                btnVoltar.Visible = true;
            }
        }
    }
Example #5
0
        /// <summary>
        /// Verifica se a Session do usuário está nula,
        /// se estiver verifica o FormsIdentity e carrega a Session
        /// </summary>
        private void GetFormsIdentityLoadSession()
        {
            try
            {
                if (HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    //var identity = HttpContext.Current.User.Identity as FormsIdentity;
                    //if (identity != null)
                    //{
                    var identity = HttpContext.Current.User.Identity;
                    var entityId = identity.GetEntityId();
                    var usuLogin = identity.GetUsuLogin();
                    if (identity != null && entityId != null && usuLogin != null)
                    {
                        //    // Recupera Ticket de autenticação gravado em Cookie
                        //    FormsIdentity id = identity;
                        //FormsAuthenticationTicket ticket = id.Ticket;

                        // Carrega usuário na session através do ticket de authenticação
                        __SessionWEB.__UsuarioWEB.Usuario = new SYS_Usuario
                        {
                            ent_id    = new Guid(entityId),
                            usu_login = usuLogin
                        };
                        SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(__SessionWEB.__UsuarioWEB.Usuario);

                        // Carrega grupo na session através do ticket de autenticação
                        var gru_id = identity.GetGrupoId();
                        if (!string.IsNullOrEmpty(gru_id))
                        {
                            __SessionWEB.__UsuarioWEB.Grupo = SYS_GrupoBO.GetEntity(new SYS_Grupo {
                                gru_id = new Guid(gru_id)
                            });
                        }
                        else
                        {
                            // Carrega grupos do usuário
                            IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(
                                __SessionWEB.__UsuarioWEB.Usuario.usu_id
                                , ApplicationWEB.SistemaID);

                            // Verifica se foi carregado os grupos do usuário
                            if (list.Count > 0)
                            {
                                // Seleciona o primeiro grupo do usuário logado para carregar na Session
                                __SessionWEB.__UsuarioWEB.Grupo = list[0];

                                DataTable dtUaPermissao = ESC_EscolaBO.RetornaUAPermissaoUsuarioGrupo(__SessionWEB.__UsuarioWEB.Usuario.usu_id, ApplicationWEB._EntidadeID, __SessionWEB.__UsuarioWEB.Grupo.gru_id);
                                if (dtUaPermissao.Rows.Count > 0)
                                {
                                    int esc_id;
                                    Int32.TryParse(dtUaPermissao.Rows[0]["esc_id"].ToString(), out esc_id);
                                    __SessionWEB.__UsuarioWEB.Esc_idPermissao = esc_id;

                                    //Caso não tenha escola, significa que o usuário possui permissão de Gestão
                                    if (esc_id == 0)
                                    {
                                        if (!string.IsNullOrEmpty(dtUaPermissao.Rows[0]["uad_idSuperior"].ToString()))
                                        {
                                            __SessionWEB.__UsuarioWEB.Uad_idSuperiorPermissao = new Guid(dtUaPermissao.Rows[0]["uad_idSuperior"].ToString());
                                        }
                                    }
                                }
                            }
                        }
                        // Carrega o cid_id na session referente a entidade do usuário autenticado
                        Guid ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id;
                        Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(ent_id);

                        SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                            ent_id = ent_id, ene_id = ene_id
                        };
                        SYS_EntidadeEnderecoBO.GetEntity(entityEntidadeEndereco);

                        END_Endereco entityEndereco = new END_Endereco {
                            end_id = entityEntidadeEndereco.end_id
                        };
                        END_EnderecoBO.GetEntity(entityEndereco);

                        __SessionWEB._cid_id = entityEndereco.cid_id;

                        // Carrega nome ou login na session do usuário autenticado
                        PES_Pessoa entityPessoa = new PES_Pessoa {
                            pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
                        };
                        PES_PessoaBO.GetEntity(entityPessoa);
                        __SessionWEB.UsuarioLogado = string.IsNullOrEmpty(entityPessoa.pes_nome) ? __SessionWEB.__UsuarioWEB.Usuario.usu_login : entityPessoa.pes_nome;

                        LoadSessionSistema();
                    }
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
            }
        }