GlobalActionFilter.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Library;
  5. using LitJson;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Microsoft.AspNetCore.Mvc.Filters;
  8. using MySystem.Models;
  9. namespace MySystem
  10. {
  11. public class GlobalActionFilter : IActionFilter
  12. {
  13. public void OnActionExecuted(ActionExecutedContext context)
  14. {
  15. //执行方法后执行这
  16. }
  17. public void OnActionExecuting(ActionExecutingContext context)
  18. {
  19. //执行方法前先执行这
  20. var stringArgs = context.ActionArguments.ToList();
  21. foreach (var keyValue in stringArgs)
  22. {
  23. string path = context.ActionDescriptor.AttributeRouteInfo.Template.ToLower();
  24. if(keyValue.Key == "value" && AllowApiList().Contains(path))
  25. {
  26. string result = function.PostWebRequest("https://test.mpap2.kexiaoshuang.com/" + path, "value=" + keyValue.Value.ToString());
  27. result = result.Replace("null", "\"\"");
  28. result = result.Replace("\"status\"", "\"Status\"");
  29. result = result.Replace("\"data\"", "\"Data\"");
  30. result = result.Replace("\"other\"", "\"Other\"");
  31. result = result.Replace("\"timestamp\"", "\"Timestamp\"");
  32. result = result.Replace("\"info\"", "\"Info\"");
  33. JsonResult obj = new JsonResult(Newtonsoft.Json.JsonConvert.DeserializeObject<AppResultJson>(result));
  34. context.Result = obj;
  35. return;
  36. }
  37. }
  38. }
  39. private List<string> AllowApiList()
  40. {
  41. List<string> result = new List<string>();
  42. result.Add("api/v1/merchantaddinfo/add");
  43. result.Add("api/v1/merchantaddinfo/businessscope");
  44. return result;
  45. }
  46. }
  47. }