ActionFilterAttribute执行了2次问题

问题描述:最近搭建了一个.NET Core WebApi,用ActionFilterAttribute来处理token和权限问题,结果每次调用接口都执行2次OnActionExecuting或者OnActionExecutionAsync。

问题分析:网络上有说是和浏览器有关系,说谷歌浏览器的jsonview的问题啥的,经过测试并没有关系。最后仔细分析了一下架构,发现是Controller的问题。

解决方法:通过下图代码,可以看到Controller本身已经过滤了,GetTest1List又要求过滤,所以ActionFilterAttribute执行了2次,根据权限设计,可以去掉其中之一AuthorizeFilter即可。

[Route("[controller]/[action]")]
    [ApiController]
    [AuthorizeFilter]
    public class Test1Controller : ControllerBase
    {
        [HttpGet]
        [AuthorizeFilter("test1")]
        public async Task<TData<List<Test1Entity>>> GetTest1List()
        {
            return await new Test1BLL().GetList();
        }
    }

 

posted @ 2023-08-02 08:59  0Behavior  阅读(78)  评论(0编辑  收藏  举报