/// <summary> /// 执行Action前判断是否有访问权限 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { var haspermiss = SysUserService.HasPermiss(this.Code); if (!haspermiss) { if (filterContext.HttpContext.Request.IsAjaxRequest() || string.Equals(filterContext.HttpContext.Request.HttpMethod, "POST", StringComparison.CurrentCultureIgnoreCase)) { var op = new OperateResult() { Message = "您的访问权限不足,请联系管理员!" }; filterContext.Result = filterContext.Controller.ToJsonOperateResult(op); } else { string url = string.Empty; var area = filterContext.RouteData.DataTokens["area"]; var controller = filterContext.RouteData.Values["controller"]; var action = filterContext.RouteData.DataTokens["action"]; //域 if (area != null) { url += string.Format("/{0}", area); } //控制器 url += string.Format("/{0}", controller); //操作方法 url += string.Format("/{0}", action); filterContext.Controller.TempData["type"] = "权限不足!"; filterContext.Controller.TempData["message"] = "您的访问权限不足,请联系管理员!"; filterContext.Result = new RedirectResult("~/SysAdmin/Error/"); } } base.OnActionExecuting(filterContext); }