/// <summary> /// 区域黑名单 /// </summary> //List<string> blackAreaNames = new List<string>() { "admin" }; public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext) { string strCurAreaName = null; if (filterContext.RouteData.DataTokens.ContainsKey("area")) { strCurAreaName = filterContext.RouteData.DataTokens["area"].ToString().ToLower(); } if (!IsDefind <Apps.Common.Attrs.SkipLoginAttribute>(filterContext)) { if (IsLogin()) { Apps.Models.PermissionModel curPer = LoadMenuBtns(filterContext); if (!IsDefind <Apps.Common.Attrs.SkipPermissionAttribute>(filterContext)) { if (curPer == null) { filterContext.Result = SendMsg(AjaxMsgStatu.NoPermission, "您没有进行此项操作的权限"); } } } else { filterContext.Result = SendMsg(AjaxMsgStatu.NoLogin, "您尚未登录", "/Account/Index"); } } }
Apps.Models.PermissionModel LoadMenuBtns(System.Web.Mvc.AuthorizationContext filterContext) { string strCurAreaName = null; if (filterContext.RouteData.DataTokens.ContainsKey("area")) { strCurAreaName = filterContext.RouteData.DataTokens["area"].ToString().ToLower(); } string strControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; string strActionName = filterContext.ActionDescriptor.ActionName; Apps.Models.PermissionModel curPer = opeCur.GetUsrPermission(strCurAreaName, strControllerName, strActionName, opeCur.Request.HttpMethod); if (curPer != null) { var sonBtns = opeCur.UsrNowPers.Where(o => o.ParentId == curPer.Id && o.OperationType == 3).OrderBy(o => o.Sort).ToList(); //if (sonBtns.Count==0) { if (curPer.OperationType == 3) { sonBtns.Add(curPer); //} filterContext.Controller.ViewBag.sonBtns = sonBtns; //filterContext.Controller.ViewBag.sonBtns = emptyBtns; } else { filterContext.Controller.ViewBag.sonBtns = sonBtns; } return(curPer); } else { filterContext.Controller.ViewBag.sonBtns = emptyBtns; return(curPer); } }
public static MvcHtmlString ToolButtonModel(this HtmlHelper helper, string id, string icon, string text, List <Apps.Models.PermissionModel> perm, string keycode, bool hr) { Apps.Models.PermissionModel curPerm = perm.Where(a => a.ActionName == keycode).FirstOrDefault(); if (curPerm != null) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("<a class=\"searchbtn\" id=\"{0}\" style=\"float: left;\" class=\"l-btn l-btn-plain\">", id); sb.AppendFormat("<span class=\"l-btn-left\"><span class=\"l-btn-text {0}\" style=\"font-size:14px;\">", curPerm.Iconic); sb.AppendFormat("</span><span style=\"font-size:12px\">{0}</span></span></a>", text); if (hr) { sb.Append("<div class=\"datagrid-btn-separator\"></div>"); } return(new MvcHtmlString(sb.ToString())); } else { return(new MvcHtmlString("")); } }