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; }
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)); } }
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; } } }
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; } } }
/// <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); } }