Esempio n. 1
0
        public bool ValidarAssinaturaEletronica(string pAssinaturaEletronica)
        {
            try
            {
                IServicoSeguranca lServicoSeguranca = InstanciarServico <IServicoSeguranca>();

                MensagemResponseBase lResponse = lServicoSeguranca.ValidarAssinaturaEletronica(new ValidarAssinaturaEletronicaRequest()
                {
                    AssinaturaEletronica = Criptografia.CalculateMD5Hash(pAssinaturaEletronica),

                    CodigoSessao = UsuarioLogado.CodigoDaSessao,
                });

                DisporServico(lServicoSeguranca);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("Erro [{0}] em PaginaBase.ValidarAssinaturaEletronica()\r\n    >>Stack:\r\n{1}"
                                   , ex.Message
                                   , ex.StackTrace);

                return(false);
            }
        }
Esempio n. 2
0
        public BuscarPermissoesDoUsuarioResponse BuscarPermissoesDoUsuario(BuscarPermissoesDoUsuarioRequest pRequest)
        {
            BuscarPermissoesDoUsuarioResponse lReturn = new BuscarPermissoesDoUsuarioResponse();

            ServicoHostColecao.Default.CarregarConfig("Desenvolvimento");

            IServicoSeguranca lServico = Ativador.Get <IServicoSeguranca>();

            ReceberUsuarioRequest  lRequest = new ReceberUsuarioRequest();
            ReceberUsuarioResponse lResponse;

            try
            {
                lRequest.CodigoUsuario = pRequest.CodigoDoUsuario;
                lRequest.CodigoSessao  = pRequest.CodigoDaSessao;

                Logger.InfoFormat("BuscarPermissoesDoUsuario(CodigoSessao [{0}], IdLogin [{1}])", lRequest.CodigoSessao, lRequest.CodigoUsuario);

                lResponse = lServico.ReceberUsuario(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    if (lResponse.Usuario != null)
                    {
                        Logger.InfoFormat("Retorno OK do serviço: [{0}] permissões para [{1}])", lResponse.Usuario.Permissoes.Count, lRequest.CodigoUsuario);

                        lReturn.StatusResposta = "OK";

                        lReturn.Permissoes = lResponse.Usuario.Permissoes;
                    }
                    else
                    {
                        throw new Exception("Serviço não identificou o usuário nessa sessão");
                    }
                }
                else
                {
                    Logger.ErrorFormat("Retorno com erro do ServicoSeguranca em BuscarPermissoesDoUsuario(CodigoSessao [{0}], IdLogin [{1}]) [{2}] \r\n{3}"
                                       , lRequest.CodigoSessao
                                       , lRequest.CodigoUsuario
                                       , lResponse.StatusResposta
                                       , lResponse.DescricaoResposta);

                    lReturn.StatusResposta = "Erro Serviço";

                    lReturn.DescricaoResposta = lResponse.DescricaoResposta;
                }
            }
            catch (Exception ex)
            {
                string lMensagem = string.Format("Exception em BuscarPermissoesDoUsuario: [{0}] \r\n{1}", ex.Message, ex.StackTrace);

                Logger.ErrorFormat(lMensagem);

                lReturn.StatusResposta    = "Exception";
                lReturn.DescricaoResposta = lMensagem;
            }

            return(lReturn);
        }
Esempio n. 3
0
 public SegurancaServico()
 {
     try
     {
         gServicoSeguranca = Ativador.Get <IServicoSeguranca>();
     }
     catch (Exception ex)
     {
         throw (ex);
     }
 }
Esempio n. 4
0
 protected void Session_End(object sender, EventArgs e)
 {
     if (Session["CodigoSessao"] != null && Session["CodigoSessao"].ToString() != string.Empty)
     {
         IServicoSeguranca seguranca    = (IServicoSeguranca)Application["ServicoSeguranca"]; //Ativador.Get<IServicoSeguranca>();
         string            codigoSessao = Session["CodigoSessao"].ToString();
         try
         {
             seguranca.EfetuarLogOut(new OMS.Library.MensagemRequestBase()
             {
                 CodigoSessao = codigoSessao
             });
         }
         catch (Exception ex)
         {
             string x = ex.Message;
             Ativador.AbortChannel(seguranca);
             Application["ServicoSeguranca"] = null;
         }
     }
 }
Esempio n. 5
0
        private string ResponderLogout()
        {
            IServicoSeguranca lServicoSeguranca = this.InstanciarServico <IServicoSeguranca>();

            MensagemResponseBase lResponse = lServicoSeguranca.EfetuarLogOut(new MensagemRequestBase()
            {
                CodigoSessao = this.CodigoSessao
            });

            DisporServico(lServicoSeguranca);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                Session.Clear();

                ///RedirecionarPara("../Login.aspx");
                //Response.Redirect()
                return(CONST_RESPOSTA_JA_ENVIADA_PELA_FUNCAO);
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }
        }
Esempio n. 6
0
        public string RealizarLogout(string pCodigoDaSessao)
        {
            IServicoSeguranca lServicoSeguranca = this.InstanciarServico <IServicoSeguranca>();

            MensagemResponseBase lResponse = lServicoSeguranca.EfetuarLogOut(new MensagemRequestBase()
            {
                CodigoSessao = pCodigoDaSessao
            });

            DisporServico(lServicoSeguranca);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                this.UsuariosLogados.Remove(UsuarioLogado.IdDoUsuarioTipoInt);

                Session.Clear();

                return(RetornarSucessoAjax("ok"));
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Solicita o processamento dos comandos de interface. Verifica os comandos permitidos e retorna
        /// a árvore.
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public ReceberArvoreComandosInterfaceResponse ReceberArvoreComandosInterface(ReceberArvoreComandosInterfaceRequest parametros)
        {
            // Referencia para o servico de seguranca
            IServicoSeguranca servicoSeguranca = Ativador.Get <IServicoSeguranca>();

            // Prepara a resposta
            ReceberArvoreComandosInterfaceResponse resposta =
                new ReceberArvoreComandosInterfaceResponse()
            {
                CodigoMensagemRequest       = parametros.CodigoMensagem,
                CodigoGrupoComandoInterface = parametros.CodigoGrupoComandoInterface
            };

            // Pega grupo de comandos
            ReceberGrupoComandoInterfaceResponse respostaReceber =
                this.ReceberGrupoComandoInterface(
                    new ReceberGrupoComandoInterfaceRequest()
            {
                CodigoSessao = parametros.CodigoSessao,
                CodigoGrupoComandoInterface = parametros.CodigoGrupoComandoInterface
            });

            // Transforma a árvore de comandos em lista
            List <ComandoInterfaceInfo> listaComandos = respostaReceber.GrupoComandoInterface.ListarComandos();

            // Cria lista indicando quais comandos são grupo
            List <string> listaGrupos =
                (from c in listaComandos
                 where c.Filhos.Count > 0
                 select c.CodigoComandoInterface).ToList();

            // Salva o código do item na tag da segurança para enviar para validação
            foreach (ComandoInterfaceInfo item in listaComandos)
            {
                item.Seguranca.Tag = item.CodigoComandoInterface;
            }

            // Cria lista de itens de seguranca a validar
            List <ItemSegurancaInfo> itensSeguranca =
                (from c in listaComandos
                 select c.Seguranca).ToList();

            // Solicita validação dos itens
            ValidarItemSegurancaResponse respostaValidacao =
                servicoSeguranca.ValidarItemSeguranca(
                    new ValidarItemSegurancaRequest()
            {
                CodigoSessao   = parametros.CodigoSessao,
                ItensSeguranca = itensSeguranca
            });

            // Cria dicionario com os itens validados para reassociar aos comandos
            Dictionary <string, ItemSegurancaInfo> dicionarioItens = new Dictionary <string, ItemSegurancaInfo>();

            foreach (ItemSegurancaInfo item in respostaValidacao.ItensSeguranca)
            {
                dicionarioItens.Add(item.Tag, item);
            }

            // Reassocia itens de segurança validado aos comandos
            foreach (ComandoInterfaceInfo comando in listaComandos)
            {
                if (dicionarioItens.ContainsKey(comando.CodigoComandoInterface))
                {
                    comando.Seguranca = dicionarioItens[comando.CodigoComandoInterface];
                }
            }

            // Cria dicionário de pais e filhos
            // O dicionário está montado como codigoFilho, codigoPai
            Dictionary <string, ComandoInterfaceInfo> dicionarioPaisFilhos = new Dictionary <string, ComandoInterfaceInfo>();

            foreach (ComandoInterfaceInfo comandoPai in listaComandos)
            {
                foreach (ComandoInterfaceInfo comandoFilho in comandoPai.Filhos)
                {
                    dicionarioPaisFilhos.Add(comandoFilho.CodigoComandoInterface, comandoPai);
                }
            }

            // Remove os não válidados pela segurança
            List <ComandoInterfaceInfo> comandosRemover =
                (from c in listaComandos
                 where !c.Seguranca.Valido.HasValue || c.Seguranca.Valido.Value == false
                 select c).ToList();

            foreach (ComandoInterfaceInfo comandoRemover in comandosRemover)
            {
                if (dicionarioPaisFilhos.ContainsKey(comandoRemover.CodigoComandoInterface))
                {
                    dicionarioPaisFilhos[comandoRemover.CodigoComandoInterface].Filhos.Remove(comandoRemover);
                }
                else
                {
                    respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz.Remove(comandoRemover);
                }
            }

            // Remover os menus de grupo que não tem filhos
            List <ComandoInterfaceInfo> comandosRemover2 =
                (from c in listaComandos
                 where listaGrupos.Contains(c.CodigoComandoInterface) && c.Filhos.Count == 0
                 select c).ToList();

            foreach (ComandoInterfaceInfo comandoRemover in comandosRemover2)
            {
                if (dicionarioPaisFilhos.ContainsKey(comandoRemover.CodigoComandoInterface))
                {
                    dicionarioPaisFilhos[comandoRemover.CodigoComandoInterface].Filhos.Remove(comandoRemover);
                }
                else
                {
                    respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz.Remove(comandoRemover);
                }
            }

            // Retorna a arvore
            resposta.ComandosInterfaceRaiz = respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz;

            // Retorna
            return(resposta);
        }
Esempio n. 8
0
        private string ResponderEfetuarLogin()
        {
            string lRetorno;

            string lUsuario, lSenha;

            lUsuario = Request.Form["Usuario"];
            lSenha   = Request.Form["Senha"];

            if (string.IsNullOrEmpty(lUsuario))
            {
                lRetorno = RetornarErroAjax("Campo 'Usuário' é obrigatório");
            }
            else if (string.IsNullOrEmpty(lSenha))
            {
                lRetorno = RetornarErroAjax("Campo 'Senha' é obrigatório");
            }
            else
            {
                AutenticarUsuarioResponse lResponseAutenticacao = null;

                try
                {
                    this.LimparSessionsDoSistema();

                    AutenticarUsuarioRequest lRequestAuth = new AutenticarUsuarioRequest()
                    {
                        Email = lUsuario,                              // Admin
                        Senha = Criptografia.CalculateMD5Hash(lSenha), //123
                        IP    = Request.ServerVariables["REMOTE_ADDR"],
                        CodigoSistemaCliente = "Intranet"
                    };

                    IServicoSeguranca lServico = this.ServicoSeguranca;

                    lResponseAutenticacao = lServico.AutenticarUsuario(lRequestAuth);

                    if (lResponseAutenticacao.StatusResposta != MensagemResponseStatusEnum.OK)
                    {
                        return(RetornarErroAjax(lResponseAutenticacao.DescricaoResposta));
                    }

                    this.CodigoSessao = lResponseAutenticacao.Sessao.CodigoSessao;
                }
                catch (Exception ex)
                {
                    return(RetornarErroAjax(ex.Message));
                }

                var lRetornoSessao = ServicoSeguranca.ReceberSessao(new ReceberSessaoRequest()
                {
                    CodigoSessao          = this.CodigoSessao,
                    CodigoSessaoARetornar = this.CodigoSessao,
                });

                this.Session["Usuario"] = new Usuario()
                {
                    Id              = lRetornoSessao.Usuario.CodigoUsuario.DBToInt32(),
                    Nome            = lRetornoSessao.Usuario.Nome,
                    EmailLogin      = lUsuario,
                    EhAdministrador = lResponseAutenticacao != null ? lResponseAutenticacao.Sessao.EhSessaoDeAdministrador : false,
                    Perfis          = lRetornoSessao.Usuario.Perfis
                };

                lRetorno = base.RetornarSucessoAjax("Intranet/Default.aspx");
            }

            return(lRetorno);
        }
Esempio n. 9
0
        public void btnAutenticar_Click(object sender, EventArgs args)
        {
            string lUsuario, lSenha;

            lUsuario = txtLogin.Text;
            lSenha   = txtSenha.Text;

            string lRetorno = string.Empty;

            AutenticarUsuarioRequest  lRequestAutenticacao;
            AutenticarUsuarioResponse lResponseAutenticacao;

            ReceberSessaoRequest  lRequestSessao;
            ReceberSessaoResponse lResponseSessao;

            IServicoSeguranca lServicoSeguranca = this.InstanciarServico <IServicoSeguranca>();

            lRequestAutenticacao = new AutenticarUsuarioRequest();

            lRequestAutenticacao.Email = lUsuario;
            lRequestAutenticacao.Senha = Criptografia.CalculateMD5Hash(lSenha);
            lRequestAutenticacao.IP    = Request.ServerVariables["REMOTE_ADDR"];
            lRequestAutenticacao.CodigoSistemaCliente = "InvXX";

            lResponseAutenticacao = lServicoSeguranca.AutenticarUsuario(lRequestAutenticacao);

            if (lResponseAutenticacao.StatusResposta != Gradual.OMS.Library.MensagemResponseStatusEnum.OK)
            {
                //lRetorno = RetornarErroAjax(lResponseAutenticacao.DescricaoResposta);

                Response.Write("<script LANGUAGE='JavaScript' >alert('" + lResponseAutenticacao.DescricaoResposta + "')</script>");

                return;
            }

            lRequestSessao = new ReceberSessaoRequest();

            lRequestSessao.CodigoSessaoARetornar = lResponseAutenticacao.Sessao.CodigoSessao;

            lRequestSessao.CodigoSessao = lResponseAutenticacao.Sessao.CodigoSessao;

            Session["CodigoSessao"] = lResponseAutenticacao.Sessao.CodigoSessao;

            lResponseSessao = lServicoSeguranca.ReceberSessao(lRequestSessao);

            base.UsuarioLogado = new Usuario()
            {
                CodigoDaSessao = lResponseAutenticacao.Sessao.CodigoSessao
                ,
                IdDoUsuario = lResponseSessao.Usuario.Complementos.ReceberItem <ContextoOMSInfo>().CodigoCBLC
                ,
                Nome = lResponseSessao.Usuario.Nome
                ,
                TipoAcesso = (TipoAcesso)Enum.Parse(typeof(TipoAcesso), lResponseSessao.Usuario.CodigoTipoAcesso.ToString())
                ,
                CodAssessor = lResponseSessao.Usuario.CodigoAssessor
                ,
                IdLogin = int.Parse(lResponseSessao.Sessao.CodigoUsuario)
            };

            base.UsuarioLogado.IdDoUsuario = lResponseSessao.Sessao.CodigoUsuario;

            base.UsuarioLogado.CodBovespa = base.UsuarioLogado.IdDoUsuario;

            if (this.UsuarioLogado.CodBovespaTipoInt == 31940)
            {
                this.UsuarioLogado.CodBmf = 31217;
            }

            DisporServico(lServicoSeguranca);

            Response.Redirect("default.aspx?guid=" + lResponseSessao.Sessao.CodigoSessao);
        }
Esempio n. 10
0
 public Form1()
 {
     InitializeComponent();
     ServicoHostColecao.Default.CarregarConfig("Default");
     servicoSeguranca = Ativador.Get <IServicoSeguranca>();
 }