protected override void OnActionExecuting(ActionExecutingContext filterContext) { LimpiarCarpetaFiles(); if (!filterContext.ActionDescriptor.GetCustomAttributes(false).Any(x => x is NeedsAuthorization)) { return; } var authAttribute = (NeedsAuthorization)filterContext.ActionDescriptor.GetCustomAttributes(false).First(x => x is NeedsAuthorization); var windowsUser = UserId; if (UserId.IndexOf('\\') >= 0) { windowsUser = UserId.Split('\\')[1]; } var wsSeguridad = new __560_wsBancor_Seguridad._560_wsBancor_Seguridad(configuracionRepository.ObtenerValorPorClave("URL_560_wsBancor_Seguridad")); var sistemaId = configuracionRepository.ObtenerValorPorClave <Int32>("SistemaId"); var _menuList = wsSeguridad.MenuPorSistemaPorUsuario(sistemaId, windowsUser, "0", 0).NodosMenu.ToList(); var _controllerName = filterContext.RouteData.Values["controller"]; var _actionName = filterContext.RouteData.Values["action"]; if (!String.IsNullOrEmpty(authAttribute.ActionValidate)) { _actionName = authAttribute.ActionValidate; } var Url = new UrlHelper(filterContext.RequestContext); if (!CanAccess(_actionName.ToString(), _controllerName.ToString(), _menuList)) { loggerService.Trace($"El usuario {UserId} no puede acceder al sitio Controller {_controllerName.ToString()} Action {_actionName.ToString()}"); filterContext.Result = new RedirectResult(Url.Action("AccesoDenegado", "Base")); } base.OnActionExecuting(filterContext); }