ASP.NET 5个中间件实践用法的理解
Understanding of practice usage of ASP.NET 5 Middleware
这篇很棒的文章解释了有关 ASP.NET 5 Middleware, Or Where Has My HttpModule Gone?
的事情
但是我们还不清楚什么时候以及为什么我们必须使用 ASP.NET 5 Middleware.
任何人都可以解释它并提供其用法的真实示例吗?
其实很简单。您将创建一个中间件来获取请求并决定:
- 是否要处理并传递给下一个中间件。
- 是否要处理它,生成响应并在那里切断请求生命周期。
您还可以使用一个中间件来仅对响应进行操作(例如,执行压缩的中间件)。
大部分中间件都是提供横切功能,例如路由、认证、压缩、错误处理。关于这些的一些真实示例:
- ASP.NET 5 Routing Middleware
- ASP.NET 5 Authentication Middlewares
- ASP.NET 5 Error Handler Middleware
这里的框架可能引起混淆,例如 MVC、SignalR 等。以前在 Katana 世界中,每个框架都创建自己的中间件以连接到系统中。对于 ASP.NET 5,这有点不同。为了让框架处理请求,您可以通过提供一个特殊的处理程序来挂接到路由中间件。例如,这里是 MVC 6 route handler. When you look at the biuilder extensions, you will see that MVC actually uses the routing middleware.
这篇很棒的文章解释了有关 ASP.NET 5 Middleware, Or Where Has My HttpModule Gone?
的事情但是我们还不清楚什么时候以及为什么我们必须使用 ASP.NET 5 Middleware.
任何人都可以解释它并提供其用法的真实示例吗?
其实很简单。您将创建一个中间件来获取请求并决定:
- 是否要处理并传递给下一个中间件。
- 是否要处理它,生成响应并在那里切断请求生命周期。
您还可以使用一个中间件来仅对响应进行操作(例如,执行压缩的中间件)。
大部分中间件都是提供横切功能,例如路由、认证、压缩、错误处理。关于这些的一些真实示例:
- ASP.NET 5 Routing Middleware
- ASP.NET 5 Authentication Middlewares
- ASP.NET 5 Error Handler Middleware
这里的框架可能引起混淆,例如 MVC、SignalR 等。以前在 Katana 世界中,每个框架都创建自己的中间件以连接到系统中。对于 ASP.NET 5,这有点不同。为了让框架处理请求,您可以通过提供一个特殊的处理程序来挂接到路由中间件。例如,这里是 MVC 6 route handler. When you look at the biuilder extensions, you will see that MVC actually uses the routing middleware.