public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            bool autenticado = Sistema.Autenticado(Sessao.UsuarioMatricula);

            if (!autenticado)
            {
                filterContext.Result = Redirecionar(filterContext);
            }
            else if (Sessao.UsuarioCategoriaCodigo == Categoria.VISITANTE && Sessao.UsuarioSenhaPadrao)
            {
                filterContext.Result = Redirecionar(filterContext, "~/acesso/visitante");
            }
            else if (Categorias != null && !Categorias.Contains(Sessao.UsuarioCategoriaCodigo))
            {
                filterContext.Result = Redirecionar(filterContext);
            }
            else if (Ocupacoes != null && !Ocupacoes.ContainsOne(Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodOcupacao))
            {
                filterContext.Result = Redirecionar(filterContext);
            }
            else if (SomenteOcupacaoAvi && !AviOcupacoesPermitidas.ContainsOne(Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodOcupacao))
            {
                filterContext.Result = Redirecionar(filterContext);
            }
            else if (SomenteOcupacaoSimulado && !SimuladoOcupacoesPermitidas.ContainsOne(Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodOcupacao))
            {
                filterContext.Result = Redirecionar(filterContext);
            }
            else if (Sessao.RealizandoAvaliacao)
            {
                string[] paths = filterContext.HttpContext.Request.Path.ToLower().Split('/');
                if (paths.Length > 0)
                {
                    string codigo = paths[paths.Length - 1];
                    if (paths.Contains("realizar"))
                    {
                        if (Sistema.AvaliacaoUsuario.ContainsKey(codigo))
                        {
                            if (Sistema.AvaliacaoUsuario[codigo].Contains(Sessao.UsuarioMatricula))
                            {
                                filterContext.Result = new RedirectResult("~/erro/1");
                            }
                        }
                    }
                    else if (filterContext.HttpContext.Request.HttpMethod == "GET")
                    {
                        filterContext.Result = new RedirectResult("~/erro/1");
                    }
                }
                else
                {
                    filterContext.Result = new RedirectResult("~/erro/1");
                }
            }

            // usuario autorizado
            base.OnActionExecuting(filterContext);
        }