从Asp.Net 5开始,我们现在有了“中间件”的概念,用于更改或与请求和响应交互。以前所有这些都是使用HttpModules实现的。
因此,我的问题如下。
什么是Asp.Net中间件,这个组件解决了什么问题,而HttpModules无法解决?
从Asp.Net 5开始,我们现在有了“中间件”的概念,用于更改或与请求和响应交互。以前所有这些都是使用HttpModules实现的。
因此,我的问题如下。
什么是Asp.Net中间件,这个组件解决了什么问题,而HttpModules无法解决?
HttpModules
在ASP.NET 5之前的版本中作为请求过滤器。它们是可重复使用的代码单元,可以插入请求管道,并在触发HttpApplication
类中定义的事件时响应。
Middleware
可以被认为是经典ASP.NET中所拥有的HTTP modules
和handlers
。一些中间件会在处理请求时实现各种中间任务,例如身份验证、会话状态检索和持久性、日志记录等等。其中一些将是产生响应的最终请求处理程序。
在HttpModule
中,你必须基于请求的各个阶段执行代码,例如AuthenticateRequest
、AuthorizeRequest
、PostResolveRequestCache
等。但是,现在使用中间件已经不再需要考虑这些事情。现在一切都是你的代码的线性执行。你可以定义多个中间件在你的应用程序中执行,每一个都在你的Startup.cs文件中显式注册。
作为开发者,你完全控制着什么以及以什么顺序执行,而不是不知道哪些HttpModules正在执行,也不真正控制它们的执行顺序。中间件可以简单地修改请求并继续调用链中的下一个,或者只是终止管道并返回结果。
都用于设置请求处理管道。
MiddleWare 组件,我们用于为 ASP.net core 应用程序设置请求处理管道。
HttpModules,我们用于为 ASP.net 应用程序设置请求处理管道。
它是管道,决定如何处理传入的 HTTP 请求和传出的 HTTP 响应。