ButtonFilter.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using DllUfpDal;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Mvc.Filters;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. using DllEapEntity.Dtos;
  10. using System.Linq;
  11. using Cksoft.Unity;
  12. namespace DllEapCommon.Filters
  13. {
  14. public class ButtonFilter : ActionFilterAttribute
  15. {
  16. public override void OnActionExecuting(ActionExecutingContext context)
  17. {
  18. var controllerName = context.ActionDescriptor.RouteValues["controller"].ToLower(); // 控制器名称
  19. var actionName = context.ActionDescriptor.RouteValues["action"].ToLower(); // 方法名称
  20. if (controllerName == "analysis2")
  21. {
  22. base.OnActionExecuting(context);
  23. return;
  24. }
  25. var userCode = context.HttpContext.Request.Headers["usercode"];
  26. var sysId = context.HttpContext.Request.Headers["sysid"];
  27. string errorinfo = string.Empty;
  28. var eapRes = new EapResponse() { Code = 1, Msg = string.Empty, IsAuthorized = 1 };
  29. using (IDatabase db = DbFactory.Base("ufp"))
  30. {
  31. var dal = new BtnFuncDal(db);
  32. var isPermitted = dal.IsPermitted(userCode, controllerName, actionName, ref errorinfo);
  33. if (!isPermitted)
  34. {
  35. eapRes.Code = 401;
  36. eapRes.Msg = errorinfo;
  37. eapRes.IsAuthorized = -1;
  38. context.Result = new JsonResult(eapRes); /*new StatusCodeResult(401)*/;
  39. }
  40. }
  41. base.OnActionExecuting(context);
  42. }
  43. }
  44. }