public classAdminAuthory : ActionFilterAttribute {OnActionExecuting(ActionExecutingContext filterContext) {skipAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(NoNeedAdminAuthory), inherit: true)|| filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(NoNeedAdminAuthory), inherit: true);if(skipAuthorization) {return;
}(!WebCookieHelper.AdminCheckLogin()) {
filterContext.Result= , true);return;
}(WebCookieHelper.GetAdminId(5) == 1) {return;
}customAttributes = filterContext.ActionDescriptor.GetCustomAttributes(true);if (customAttributes != null && customAttributes.Length > 0) {for (int i = 0; i < customAttributes.Count(); i++) {) {actionCode = (customAttributes[i] actionUrl = (customAttributes[i] actionResultType = (customAttributes[i] (actionCode == ) {;
}else { //判断权限是否符合
List pageActionList =AdminMenuHelper.GetNowAdminMenu();var pageSelect = pageActionList.Where(m => m.PageUrl ==actionUrl);if (pageSelect != null && pageSelect.Count() > 0) { //判断有无执行该页面的权利codeList =AdminMenuHelper.LoadActionCodeList();codeSelect = codeList.Where(m => m.ActionCode ==actionCode);if (codeSelect != null && codeSelect.Count() > 0) {int codeId =codeSelect.First().Id;
JavaScriptSerializer serializer= newJavaScriptSerializer();roleActionList =pageSelect.First().RoleActionList;
List roleActionListModel = serializer.Deserialize>(roleActionList);if (roleActionListModel != null && roleActionListModel.Where(m => m.ActionId == codeId && m.actionChecked == 1).Count() > 0) {//判断CodeId在管理员动作列表中是否为选择状态
List adminActionListModel = serializer.Deserialize>(pageSelect.First().AdminActionList);if (adminActionListModel != null && adminActionListModel.Where(m => m.ActionId == codeId && m.actionChecked == 1).Count() > 0) {
StringBuilder sb= newStringBuilder();
sb.Append();(var item inroleActionListModel) {if (item.actionChecked == 1) {var needChangeAction = adminActionListModel.Where(m => m.ActionId ==item.ActionId).FirstOrDefault();if (needChangeAction == null) {
item.actionChecked= 0;
}else if (needChangeAction.actionChecked == 0) {
item.actionChecked= 0;
}
}
AuthorDesign.Model.PageAction OneAction= codeList.Where(m => m.Id ==item.ActionId).FirstOrDefault();
sb.Append().Append().Append().Append().Append().Append().Append(OneAction == ).Append().Append().Append().Append().Append().Append(item.actionChecked).Append().Append();
}
sb.Remove(sb.Length- 1, 1);
sb.Append();
filterContext.Controller.ViewBag.CanOperationActionList=sb.ToString();
}else{if (actionResultType == 0) {
filterContext.Result= , true);
}else if (actionResultType == 1) {
filterContext.Result= , message = } };
}return;
}
}else{if (actionResultType == 0) {
filterContext.Result= , true);
}else if (actionResultType == 1) {
filterContext.Result= , message = } };
}return;
}
}else{if (actionResultType == 0) {
filterContext.Result= , true);
}else if (actionResultType == 1) {
filterContext.Result= , message = } };
}return;
}
}else{if (actionResultType == 0) {
filterContext.Result= , true);
}else if (actionResultType == 1) {
filterContext.Result= , message = } };
}return;
}
}
}
}
}base.OnActionExecuting(filterContext);
}
}
[AttributeUsage(AttributeTargets.Class| AttributeTargets.Method, AllowMultiple = false, Inherited = true)]public classNoNeedAdminAuthory : Attribute {
}