protected override bool IsAuthorized(HttpActionContext actionContext)
 {
     if (actionContext.ActionDescriptor.GetCustomAttributes <DontAuthorizeFilterApiAttribute>().Any())
     {
         return(true);
     }
     return(ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario != null);
 }
Beispiel #2
0
    public static PortalApiModel.RetornoTransicionarSistema TransicionarSistema(PortalApiModel.TransicionarSistema parametros)
    {
        //
        WebReturn <bool> retr = new WebReturn <bool>();

        try
        {
            PortalApiModel.RetornoTransicionarSistema retorno = new PortalApiModel.RetornoTransicionarSistema();
            //
            ControleDeAcessoTO.ObterSistemasPermitidos sistemaSelecionado;
            if (ControleDeAcesso.MODODESENVOLVIMENTO == 0)
            {
                sistemaSelecionado = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).SistemasPermitidos.Where(x => x.CODSISINF == parametros.CODSISINF).FirstOrDefault();
            }
            else
            {
                sistemaSelecionado = new ControleDeAcessoTO.ObterSistemasPermitidos()
                {
                    DESURLLNK = ControleDeAcesso.URLSISTEMAMODODESENVOLVIMENTO
                }
            };
            if (sistemaSelecionado != null)
            {
                var PRIVATEKEY = GerarChavePrivada();
                var codFnc     = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario.CODFNC;
                //
                retorno.PUBLICTOKEN = Encriptar(PRIVATEKEY, new JavaScriptSerializer().Serialize(new ControleDeAcesso.ParametrosCriptografia()
                {
                    ParametrosTransicao = parametros, CODFNC = codFnc
                }));
                //
                retorno.PUBLICKEY = CalcularMD5(PRIVATEKEY);
                retorno.DESURLLNK = sistemaSelecionado.DESURLLNK + CAMINHOAPISISTEMAS + "?PUBLICKEY=" + HttpUtility.UrlEncode(retorno.PUBLICKEY) + "&PUBLICTOKEN=" + HttpUtility.UrlEncode(retorno.PUBLICTOKEN);
                //
                lock (ControleDeAcesso.PENDINGTOKENS)
                    ControleDeAcesso.PENDINGTOKENS.Add(new ControleDeAcesso.PENDINGTOKEN
                                                           ()
                    {
                        DTEXP      = DateTime.Now.AddSeconds(10),
                        PRIVATEKEY = PRIVATEKEY,
                        PUBLICKEY  = retorno.PUBLICKEY
                    });
            }
            return(retorno);
        }
        catch (Exception ex)
        {
            retr.Code    = 1;
            retr.Message = ex.Message;
            Utilitarios.CriaLogErro(ex);
            Utilitarios.InserirLog(ex,
                                   System.Reflection.MethodInfo.GetCurrentMethod().Name,
                                   string.Join(";", System.Reflection.MethodInfo.GetCurrentMethod().GetParameters().Select(val => val.Name)),
                                   ex.GetType().Name,
                                   "ERRO TRANSACIONAR SISTEMA.!!");
            return(null /* TODO Change to default(_) if this is not a reference type */);
        }
    }
Beispiel #3
0
    public LoginApiModel.RetornoEfetuarLogin EfetuarLogin(LoginApiModel.EfetuarLogin parametros)
    {
        var ret = new LoginApiModel.RetornoEfetuarLogin();
        //
        var grupos = ControleDeAcesso.AutenticaUsuario(parametros.USUARIO, parametros.SENHA);

        if (grupos == null || grupos != null && grupos.Count > 0)
        {
            var loginObj = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session, parametros.USUARIO, grupos);
            if (loginObj.InformacoesUsuario == null)
            {
                ret.MENSAGEM = "Usuário não existente na base de dados.";
            }
            else
            {
                //
                if ((grupos != null))
                {
                    List <string> GruposSmart = new List <string>();
                    //
                    grupos.ForEach(Item =>
                    {
                        if ((Item.ToUpper().StartsWith("SMART.")))
                        {
                            GruposSmart.Add(Item);
                        }
                    });
                    //
                    if ((GruposSmart != null && GruposSmart.Count > 0))
                    {
                        ControleDeAcessoBLL BLL = new ControleDeAcessoBLL();
                        BLL.ValidarGrupoSistemas(loginObj.InformacoesUsuario.CODFNC, GruposSmart);
                        //
                        loginObj = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session, parametros.USUARIO, grupos);
                    }
                }
                //
                if (loginObj.SistemasPermitidos.Count == 0)
                {
                    ret.MENSAGEM = "Usuário sem permissão de acesso associada.";
                }
                else
                {
                    ret.CODIGO = 1;
                }
            }
        }
        else
        {
            ret.MENSAGEM = "Usuário ou senha incorretos.";
        }
        //
        return(ret);
    }
    public static void InserirLog(Exception ex, string metodo, string parametro, string camada, string mensagem)
    {
        RestClient  client  = new RestClient(string.Format("{0}/{1}", Constantes.WebApiLog, Constantes.InserirLog));
        RestRequest request = new RestRequest();

        request.Method = Method.POST;

        string MessagemL = "Portal Acesso Smart: " + mensagem + ": " + Environment.NewLine + Environment.NewLine +
                           "Verifique a mensagem de erro a seguir para solucionar o problema." + Environment.NewLine +
                           Environment.NewLine + ex.Message + Environment.NewLine + Environment.NewLine + "Metodo: " +
                           ex.TargetSite.DeclaringType.FullName + ex.TargetSite.Name + Environment.NewLine + Environment.NewLine + "Origem: " +
                           ex.Source + Environment.NewLine + Environment.NewLine + "Pilha de execução: " + ex.StackTrace;

        string MessagemReduzida = "";
        string Parametro        = "";

        if (ex.Message.Length < 600)
        {
            MessagemReduzida = ex.Message;
        }
        else
        {
            MessagemReduzida = ex.Message.Substring(0, 600);
        }

        if (parametro.Length > 70)
        {
            Parametro = parametro.Substring(0, 70);
        }
        else
        {
            Parametro = parametro;
        }

        int codfnc = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario != null?ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario.CODFNC : 0;

        ControleLog param = new ControleLog()
        {
            CODSISINF = 0,
            CODFNC    = codfnc,
            DESMDO    = metodo,
            DESPMTSIS = Parametro,
            DESCAMERR = camada,
            DESERRRDC = MessagemReduzida,
            DESERRDDO = MessagemL
        };

        string body = JsonConvert.SerializeObject(param);

        request.AddParameter("application/json", body, ParameterType.RequestBody);
        IRestResponse    response = client.Execute(request);
        WebReturn <bool> api      = JsonConvert.DeserializeObject <WebReturn <bool> >(response.Content);
    }
 protected override bool AuthorizeCore(HttpContextBase httpContext)
 {
     if (actionDesc.GetCustomAttributes(typeof(DontAuthorizeFilterMvcAttribute), false).Any())
     {
         return(true);
     }
     if (ReferenceEquals(ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session).InformacoesUsuario, null))
     {
         httpContext.Response.Redirect("~/Paginas/Login/Index");
         return(false);
     }
     else
     {
         return(true);
     }
 }
Beispiel #6
0
    protected override bool AuthorizeCore(HttpContextBase hContext)
    {
        var infoUsr = ControleDeAcesso.ObterConjuntoDePermissoesUsuario(HttpContext.Current.Session);

        if (hContext.Session["URLsAutorizadas"] != null)
        {
            //
            var URLs = (List <string>)(hContext.Session["URLsAutorizadas"]);
            if (URLs.Where(x => x.Equals(hContext.Request.Url.AbsolutePath)).Count() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(true);
        }
    }