中间件Middleware和过滤器Filter的区别
下图显示的是请求和响应在请求处理管道pipe中的完整的过程,调用方的请求按照顺序流经各个中间件前逻辑代码,最后生成响应按照与来时相反的顺序流经各个中间件的后逻辑代码(即await next()之后的代码),返回给调用方。图中的EndPoint(终结点)中间件一般为相应的应用类型,比如MVC。
下图为终结点中间件的内部定义的Filter的执行顺序(我记得在Resource filter之前应该还有一个Authorize Filter,但这里的微软的文档没写)
两者的区别:
中间件是ASP.NET CORE提供的功能,而Filter是ASP.NET CORE MVC提供的功能。ASP.NET CORE MVC是MVC中间件提供的框架,Filter是属于MVC中间件提供的一个功能。
引用:
https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0
https://www.bilibili.com/video/BV1pK41137He?p=143