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); } } }
/// <summary> /// 检查授权情况 /// </summary> /// <param name="filterContext"></param> bool CheckAuthorization(AuthorizationContext filterContext) { var flag = true; object[] actionFilter = filterContext.ActionDescriptor.GetCustomAttributes(typeof(UnAuthorize), false); if (actionFilter.Length == 1) { return(true); } string controllerName = filterContext.RouteData.Values["controller"].ToString(); string actionName = filterContext.RouteData.Values["action"].ToString(); if (CurrentSellerManager.SellerPrivileges == null || CurrentSellerManager.SellerPrivileges.Count == 0 || !SellerPermission.CheckPermissions(CurrentSellerManager.SellerPrivileges, controllerName, actionName)) { if (Core.Helper.WebHelper.IsAjax()) { Result result = new Result(); result.msg = "你没有访问的权限!"; result.success = false; filterContext.Result = Json(result); flag = false; } else { //跳转到错误页 var result = new ViewResult() { ViewName = "NoAccess" }; result.TempData.Add("Message", "你没有权限访问此页面"); result.TempData.Add("Title", "你没有权限访问此页面!"); filterContext.Result = result; flag = false; } } return(flag); }
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); }