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