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); }
public BaseController(IConfiguracionRepository _configuracionRepository, IMensajeRepository _mensajeRepository, ILoggerService _loggerService) { configuracionRepository = _configuracionRepository; mensajeRepository = _mensajeRepository; loggerService = _loggerService; try { ViewData.Add("URL_TARJETAS_CREDITO_WEB", configuracionRepository.ObtenerConfiguracionPorClave(URL_TARJETAS_CREDITO_WEB).Valor); ViewData.Add("URL_INDIVIDUOS_WEB", GetBaseUrl()); System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); ViewData.Add("VERSION", fvi.ProductVersion); var url560wsBancor = configuracionRepository.ObtenerValorPorClave("URL_560_wsBancor_Seguridad"); var wsBancorSeg = new wsBancorSeguridad._560_wsBancor_Seguridad(url560wsBancor, Int32.MaxValue); var CanalId = 0; var CanalCodigo = 0; if (System.Web.HttpContext.Current.Session["CanalId"] == null && System.Web.HttpContext.Current.Session["CanalCodigo"] == null) { wsBancorSeg.TipoDeUsuarioAvanzado(SisId, UserId, ref CanalId, ref CanalCodigo); System.Web.HttpContext.Current.Session["CanalId"] = CanalId.ToString(); System.Web.HttpContext.Current.Session["CanalCodigo"] = CanalCodigo.ToString(); } if (System.Web.HttpContext.Current.Session["Usuario"] == null) { var Usuario = wsBancorSeg.LeeUsuario_ByID(UserId); System.Web.HttpContext.Current.Session["Usuario"] = Usuario; } } catch (Exception ex) { loggerService.ErrorLog(ex); } }