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();
}
}
分类:
其他
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端