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

所以这里是我的问题。

究竟什么是 asp.net 中间件,该组件解决了哪些 HttpModules 无法解决的问题?

最佳答案

HttpModules 在 ASP.NET 5 之前的版本中充当请求过滤器。它们是可重用的代码单元,可以插入请求管道,并负责响应 HttpApplication 类中定义的事件,因为它们被触发。
Middleware 可以被认为是经典 ASP.NET 中的 HTTP moduleshandlers。一些中间件在处理请求时会实现各种中间任务,例如身份验证、 session 状态检索和持久化、日志记录等。其中一些将是产生响应的最终请求处理程序。

问题2:这个组件解决了哪些HttpModules无法解决的问题?

  • HttpModule 中,您必须根据各种
    请求的各个阶段,例如 AuthenticateRequestAuthorizeRequestPostResolveRequestCache 和其他一些
    命名困惑的事件。中间件不再是这种情况,
    事情现在才有意义。一切都只是线性执行
    你的代码。您可以定义多个中间件来执行
    在您的应用程序中,每个都在您的应用程序中明确注册
    启动.cs 文件。
  • 作为开发人员,您可以完全控制 get 的执行和
    什么顺序而不是不知道正在执行的 HttpModules 和
    并没有真正控制他们的执行顺序。中间件可以
    只需修改一个请求并继续调用中的下一个
    链,或者它可以只是终止管道并返回结果。

  • Reference

    关于Asp.Net MiddleWare 与 HttpModules,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31896509/

    10-10 16:25