using Cksoft.Data; using Cksoft.Data.Repository; using DllUfpDal; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System; using System.Collections.Generic; using System.Text; using DllEapEntity.Dtos; using System.Linq; using Cksoft.Unity; namespace DllEapCommon.Filters { public class ButtonFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext context) { var controllerName = context.ActionDescriptor.RouteValues["controller"].ToLower(); // 控制器名称 var actionName = context.ActionDescriptor.RouteValues["action"].ToLower(); // 方法名称 if (controllerName == "analysis2") { base.OnActionExecuting(context); return; } var userCode = context.HttpContext.Request.Headers["usercode"]; var sysId = context.HttpContext.Request.Headers["sysid"]; string errorinfo = string.Empty; var eapRes = new EapResponse() { Code = 1, Msg = string.Empty, IsAuthorized = 1 }; using (IDatabase db = DbFactory.Base("ufp")) { var dal = new BtnFuncDal(db); var isPermitted = dal.IsPermitted(userCode, controllerName, actionName, ref errorinfo); if (!isPermitted) { eapRes.Code = 401; eapRes.Msg = errorinfo; eapRes.IsAuthorized = -1; context.Result = new JsonResult(eapRes); /*new StatusCodeResult(401)*/; } } base.OnActionExecuting(context); } } }