ASP.NET CORE 关于中间件和过滤器

过滤器和中间件一样,都可以用来拦截用户请求和请求数据的。控制器目前用到的过滤器种类有

它们的主要用途有错误处理,缓存,配置,授权,日志记录,主要的好处就是避免重复代码。

一个请求经过服务器管道处理的流程

根据上图所示,过滤器的事件是在各种中间件运行过后,到Action截面处才执行。它先执行全局过滤器的,然后才是类和方法过滤器。
过滤器在处理上述提到的重复性操作的需求有优势,它也有局限性。对于不属于ASP.NET范畴的静态页面,就不能用过滤器,而是用中间件来处理,因为中间件一旦被注册,它将拦截一切向服务器发起的请求,解析HttpContext可以实现一些过滤器难以实现的业务逻辑。

把ASP.NET Core处理请求的方式看做是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件。 每个中间件可以:

选择是否将请求传递给管道中的下一个组件。
可以在调用管道中的下一个组件之前和之后执行业务逻辑。

posted @ 2020-06-28 16:50  qiFen9  阅读(648)  评论(0)    收藏  举报