static SellerPermission() { SellerPermission.ActionPermissions = SellerPermission.GetAllActionByAssembly(); SellerPermission.privileges = new Dictionary <SellerPrivilege, IEnumerable <ActionPermission> >(); IEnumerable <List <ActionItem> > privilege = from a in PrivilegeHelper.GetPrivileges <SellerPrivilege>().Privilege select a.Items; foreach (List <ActionItem> actionItems in privilege) { foreach (ActionItem actionItem in actionItems) { List <ActionPermission> actionPermissions = new List <ActionPermission>(); foreach (Controllers controller in actionItem.Controllers) { foreach (string actionName in controller.ActionNames) { actionPermissions.AddRange(SellerPermission.GetActionByControllerName(controller.ControllerName, actionName)); } } SellerPermission.privileges.Add((SellerPrivilege)actionItem.PrivilegeId, actionPermissions); } } }
private bool CheckAuthorization(AuthorizationContext filterContext) { bool flag = true; if (filterContext.ActionDescriptor.GetCustomAttributes(typeof(UnAuthorize), false).Length == 1) { return(true); } string str = filterContext.RouteData.Values["controller"].ToString(); string str1 = filterContext.RouteData.Values["action"].ToString(); if (base.CurrentSellerManager.SellerPrivileges == null || base.CurrentSellerManager.SellerPrivileges.Count == 0 || !SellerPermission.CheckPermissions(base.CurrentSellerManager.SellerPrivileges, str, str1)) { if (!WebHelper.IsAjax()) { ViewResult viewResult = new ViewResult() { ViewName = "NoAccess" }; viewResult.TempData.Add("Message", "你没有权限访问此页面"); viewResult.TempData.Add("Title", "你没有权限访问此页面!"); filterContext.Result = viewResult; flag = false; } else { BaseController.Result result = new BaseController.Result() { msg = "你没有访问的权限!", success = false }; filterContext.Result = base.Json(result); flag = false; } } return(flag); }