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 @   0Behavior  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示