从 Asp.Net 5 开始,我们现在有了“中间件”概念来改变请求和响应或与请求和响应交互。所有这些都是在使用 HttpModules 之前完成的。
所以这里是我的问题。
究竟什么是 asp.net 中间件,该组件解决了哪些 HttpModules 无法解决的问题?
最佳答案
HttpModules
在 ASP.NET 5 之前的版本中充当请求过滤器。它们是可重用的代码单元,可以插入请求管道,并负责响应 HttpApplication
类中定义的事件,因为它们被触发。Middleware
可以被认为是经典 ASP.NET 中的 HTTP modules
和 handlers
。一些中间件在处理请求时会实现各种中间任务,例如身份验证、 session 状态检索和持久化、日志记录等。其中一些将是产生响应的最终请求处理程序。
问题2:这个组件解决了哪些HttpModules无法解决的问题?
HttpModule
中,您必须根据各种请求的各个阶段,例如
AuthenticateRequest
,AuthorizeRequest
、 PostResolveRequestCache
和其他一些命名困惑的事件。中间件不再是这种情况,
事情现在才有意义。一切都只是线性执行
你的代码。您可以定义多个中间件来执行
在您的应用程序中,每个都在您的应用程序中明确注册
启动.cs 文件。
什么顺序而不是不知道正在执行的 HttpModules 和
并没有真正控制他们的执行顺序。中间件可以
只需修改一个请求并继续调用中的下一个
链,或者它可以只是终止管道并返回结果。
Reference
关于Asp.Net MiddleWare 与 HttpModules,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31896509/