中间件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

 

posted @ 2023-04-30 11:24  开心的菜鸟程序猿  阅读(418)  评论(0)    收藏  举报