.NET6自定义WebAPI过滤器

2022-04-16 08:27:05

1、tmkJQBKX上代码

/// <summary>    /// API白名单过滤器    /// </summary>    public class APIFilter : ActionFilterAttribute    {        /// <summary>tmkJQBKX        /// 控制器中加了该属性的方法中代码执行之前该方法。        /// 所以可以用做权限校验。        /// </summary>        /// <param name="context"></param>        public override void OnActionExecuting(ActionExecutingContext context)        {            var vistorIp = context.HttpContext.Connection.RemoteIpAddress.ToString_();            var whitwww.easck.comeIp = AppsettingHelper.Get("WhiteIP");            if (!string.IsNullOrEmpty(whiteIp))            {                List<string> whiteIpList = whiteIp.Split(',').ToList();                if (!whiteIpList.Contains("*") && !whiteIpList.Contains(vistorIp))                {                    context.HttpContext.Response.StatusCode = 401;                    context.Result = new jsonResult(new { code = 401, msg = "非法IP" });                }            }            base.OnActionExecuting(context);        }        /// <summary>        /// 控www.easck.com制器中加了该属性的方法执行完成后才会来执行该方法。        /// </summary>        /// <param name="context"></param>        public override void OnActionExecuted(ActionExecutedContext context)        {            base.OnActionExecuted(context);        }        /// <summary>        /// 控制器中加了该属性的方法执行完成后才会来执行该方法。比OnActionExecuted()方法还晚执行。        /// </summary>        /// <param name="context"></param>        /// <param name="next"></param>        /// <returns></returns>        public override Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)        {            return base.OnResultExecutionAsync(context, next);        }    }

2、使用

    [Route("api/[controller]/[action]")]    [ApiController]    [APIFilter]    public class YangController : BaseController

到此这篇关于.NET6自定义WebAPI过滤器的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。