using System; using System.Collections.Generic; using System.Linq; using Library; using LitJson; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using MySystem.Models; namespace MySystem { public class GlobalActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) { //执行方法后执行这 } public void OnActionExecuting(ActionExecutingContext context) { //执行方法前先执行这 var stringArgs = context.ActionArguments.ToList(); foreach (var keyValue in stringArgs) { string path = context.ActionDescriptor.AttributeRouteInfo.Template.ToLower(); function.WriteLog(path, "拦截器日志"); if(keyValue.Key == "value" && AllowApiList().Contains(path)) { function.WriteLog(keyValue.Value.ToString(), "拦截器日志"); string result = function.PostWebRequest(AppConfig.Base.Host2 + path, "value=" + keyValue.Value.ToString()); function.WriteLog(result, "拦截器日志"); result = result.Replace("null", "\"\""); result = result.Replace("\"status\"", "\"Status\""); result = result.Replace("\"data\"", "\"Data\""); result = result.Replace("\"other\"", "\"Other\""); result = result.Replace("\"timestamp\"", "\"Timestamp\""); result = result.Replace("\"info\"", "\"Info\""); JsonResult obj = new JsonResult(Newtonsoft.Json.JsonConvert.DeserializeObject(result)); context.Result = obj; return; } } } private List AllowApiList() { List result = new List(); // result.Add("api/v1/merchantaddinfo/add"); // result.Add("api/v1/merchantaddinfo/options"); // result.Add("api/v1/merchantaddinfo/businessscope"); // result.Add("api/v1/merchantaddinfo/detail"); // result.Add("api/v1/merchantinfo/merchantbystatus"); // result.Add("api/v1/merchantinfo/merchantdetailbystatus"); // result.Add("api/v1/consumerorders/pay"); return result; } } }