阅读了关于asp.net核心middlware之后,我很困惑我应该何时使用过滤器以及何时应该使用中间件,因为它们似乎可以实现相同的目标。 什么时候应该使用中间件代替配件?asp.net核心中间件vs过滤器
22
A
回答
16
在频道9有一个关于此的视频:ASP.NET Monsters #91: Middleware vs. Filters。总结视频:
请求的执行开始,我们有一个中间件和另一个middlerware,把它想象成“娃娃里面的俄罗斯娃娃”,最终路由中间件踢进去然后请求进入MVC管道。因此如果你不需要MVC的上下文(假设你关心流程和执行,比如响应头部的一些预路由机制等),那么使用中间件。
但是,如果您需要MVC的上下文,并且您想针对操作进行操作,请使用过滤器。
18
中间件在ASP.NET Core级别上运行,并且可以处理进入应用程序的每个请求。
另一方面,MVC过滤器仅适用于访问MVC的请求。
因此,例如,如果我想强制所有请求都必须通过HTTPS完成,那么我将不得不为此使用中间件。如果我制作了MVC过滤器,用户仍然可以请求通过HTTP的静态文件。
但是另一方面,在MVC控制器中记录请求持续时间的东西可能绝对是一个动作过滤器。
相关问题
- 1. 中间件过滤asp.net核心REST方法
- 2. ASP.Net核心 - 从中间件
- 3. ASP.NET核心OWIN中间件
- 4. 核心音频过滤器
- 5. 覆盖ASP.NET中的控制器/操作中的全局操作过滤器核心MVC 1.0.1(ASP.NET核心1.1)
- 6. asp.net核心温莎VS ConfigureServices
- 7. ASP.NET核心 - MVC上的中间件
- 8. 核心图像过滤器应用于
- 9. 实体框架核心过滤器DbSet
- 10. CIHueAdjust核心图像过滤器设置
- 11. 核心数据过滤
- 12. asp.net mvc全局vs类过滤器
- 13. ASP.NET核心:通过CallContextServiceLocator.Locator.ServiceProvider
- 14. 上传的WebAPI ASP.NET核心JSON VS FORMDATA
- 15. Asp.net核心EF在2015年VS
- 16. VS代码asp.net核心调试失败
- 17. 如何在Asp.Net核心自定义授权过滤器中返回未授权
- 18. 核心图像灰度过滤器和棕褐色过滤器iOS
- 19. Servlet vs过滤器
- 20. Django:object_set vs过滤器
- 21. iphone核心数据 - 过滤NSFetchedResultController?
- 22. AR核心:像脸部过滤的Snapchat
- 23. 核心数据过滤结果
- 24. ef核心linq过滤子实体
- 25. .NET核心异常过滤器停止控制器执行
- 26. 在Asp.net核心
- 27. asp.net核心defaultProxy
- 28. 与ASP.Net核心
- 29. 在Asp.net核心
- 30. 在asp.net核心
本文档针对的是具体问题。 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters#using-middleware-in-the-filter-pipeline – Nkosi