Asp.Net MiddleWare与HttpModules

时间:2015-08-08 17:11:58

标签: asp.net asp.net-mvc

从Asp.Net 5开始,我们现在拥有"中间件"改变请求和响应或与之交互的概念。所有这些都是在使用HttpModules之前完成的。

所以这是我的问题。

什么是asp.net中间件以及该组件解决了哪些问题无法通过HttpModules解决?

2 个答案:

答案 0 :(得分:5)

HttpModules充当5.之前的ASP.NET版本中的请求过滤器。它们是可重用的代码单元,可以插入请求管道,并负责响应HttpApplication中定义的事件他们被解雇了。

Middleware可以被认为是我们在经典ASP.NET中拥有的HTTP moduleshandlers。一些中间件在处理诸如认证,会话状态检索和持久性,日志记录等请求时将实现各种中间任务。其中一些将是最终的请求处理程序,将产生响应。

问题2 :此组件解决了哪些问题无法通过HttpModules解决?

  • HttpModule中,您必须根据各种代码执行代码 请求的各个阶段,例如AuthenticateRequestAuthorizeRequestPostResolveRequestCache和其他一些问题 令人困惑的命名事件。 中间件不再是这种情况, 事情现在才有意义。一切都只是线性执行 你的代码您可以定义多个中间件来执行 在您的申请中,每个人都在您的申请中明确注册 Startup.cs文件。

  • 作为开发人员,您可以完全控制执行内容的执行情况 什么顺序而不是不知道哪些HttpModules正在执行和 并没有真正控制他们的执行顺序。中间件可以 只需修改一个请求并继续调用下一个请求 链,或者它可以只是终止管道并返回结果。

Reference

答案 1 :(得分:0)

这两个都用于建立请求处理管道。

MiddleWare 组件,我们用于设置ASP.net核心应用程序的请求处理管道。

HttpModules ,我们用于为ASP.net应用程序设置请求处理管道。

由管道决定如何处理传入的httprequest和传出的httpresponse。