从Asp.Net 5开始,我们现在拥有"中间件"改变请求和响应或与之交互的概念。所有这些都是在使用HttpModules之前完成的。
所以这是我的问题。
什么是asp.net中间件以及该组件解决了哪些问题无法通过HttpModules解决?
答案 0 :(得分:5)
HttpModules
充当5.之前的ASP.NET版本中的请求过滤器。它们是可重用的代码单元,可以插入请求管道,并负责响应HttpApplication
中定义的事件他们被解雇了。
Middleware
可以被认为是我们在经典ASP.NET中拥有的HTTP modules
和handlers
。一些中间件在处理诸如认证,会话状态检索和持久性,日志记录等请求时将实现各种中间任务。其中一些将是最终的请求处理程序,将产生响应。
在HttpModule
中,您必须根据各种代码执行代码
请求的各个阶段,例如AuthenticateRequest
,
AuthorizeRequest
,PostResolveRequestCache
和其他一些问题
令人困惑的命名事件。 中间件不再是这种情况,
事情现在才有意义。一切都只是线性执行
你的代码您可以定义多个中间件来执行
在您的申请中,每个人都在您的申请中明确注册
Startup.cs文件。
作为开发人员,您可以完全控制执行内容的执行情况 什么顺序而不是不知道哪些HttpModules正在执行和 并没有真正控制他们的执行顺序。中间件可以 只需修改一个请求并继续调用下一个请求 链,或者它可以只是终止管道并返回结果。
答案 1 :(得分:0)
这两个都用于建立请求处理管道。
MiddleWare 组件,我们用于设置ASP.net核心应用程序的请求处理管道。
HttpModules ,我们用于为ASP.net应用程序设置请求处理管道。
由管道决定如何处理传入的httprequest和传出的httpresponse。