使用 ASP.NET Core 中间件时如何处理 global.asax 文件中的所有事件

Mou*_*Mou 7 asp.net-core-mvc asp.net-core

这是 global.asax 文件中的主要事件列表。假设当我们为 global.asax 文件中的每个事件编写代码以处理情况时,以及何时使用 ASP.NET Core 中间件,然后告诉我如何处理 ASP.NET Core 中间件中的每个事件代码。请提供示例代码来处理 ASP.NET Core 中间件中的所有事件。

Application_Init:

当应用程序初始化或第一次调用时触发。它为所有 HttpApplication 对象实例调用。

申请_处置:

在应用程序被销毁之前触发。这是清理以前使用过的资源的理想位置。

应用程序错误:

在应用程序中遇到未处理的异常时触发。

应用程序_开始:

在创建 HttpApplication 类的第一个实例时触发。它允许您创建所有 HttpApplication 实例都可以访问的对象。

申请结束:

当 HttpApplication 类的最后一个实例被销毁时触发。它在应用程序的生命周期内仅被触发一次。

Application_BeginRequest:

收到应用程序请求时触发。它是为请求触发的第一个事件,请求通常是用户输入的页面请求 (URL)。

Application_EndRequest:

为应用程序请求触发的最后一个事件。

Application_PreRequestHandlerExecute:

在 ASP.NET 页面框架开始执行事件处理程序(如页面或 Web 服务)之前触发。

Application_PostRequestHandlerExecute:

当 ASP.NET 页面框架执行完事件处理程序时触发。

Applcation_PreSendRequestHeaders:

在 ASP.NET 页面框架将 HTTP 标头发送到请求客户端(浏览器)之前触发。

Application_PreSendContent:

在 ASP.NET 页面框架将内容发送到请求客户端(浏览器)之前触发。

Application_AcquireRequestState:

当 ASP.NET 页面框架获取与当前请求相关的当前状态(会话状态)时触发。

Application_ReleaseRequestState:

当 ASP.NET 页面框架完成所有事件处理程序的执行时触发。这导致所有状态模块保存其当前状态数据。

Application_ResolveRequestCache:

当 ASP.NET 页面框架完成授权请求时触发。它允许缓存模块为来自缓存的请求提供服务,从而绕过处理程序的执行。

Application_UpdateRequestCache:

当 ASP.NET 页面框架完成处理程序执行以允许缓存模块存储用于处理后续请求的响应时触发。

Application_AuthenticateRequest:

当安全模块将当前用户的身份确定为有效时触发。此时,用户的凭据已被验证。

Application_AuthorizeRequest:

当安全模块验证用户可以访问资源时触发。

会话_开始:

当新用户访问应用程序网站时触发。

会话结束:

当用户的会话超时、结束或离开应用程序网站时触发。

谢谢

Daw*_*ski 5

关于 ASP.NET Core 中的会话

经典 ASP.NET 包含几个与会话相关的事件:Session_Start 和 Session_End,您可以通过 global.asax 访问这些事件以执行代码。在 ASP.NET Core 1.0 中,您可以使用中间件查询会话集合,以确定是否已建立会话来复制 Session_Start 事件,但没有计划引入与 Session_End 等效的事件。

由于 ASP.NET Core 1.0 背后的驱动力之一是“云就绪”,因此会话管理设计的重点是使其在分布式场景中工作。Session_End 仅在会话使用 inproc 模式(本地服务器内存)时才会触发,并且 .NET Core 团队已声明他们不会添加仅在本地工作的功能

请查看此处有关在 ASP.NET Core 中管理应用程序会话的信息

Http模块

ASP.NET Core 中的 HttpModule 已被中间件取代,Application_BeginRequest 或 Application_EndRequest 等事件是 global.asax(Http_Module)的方法。因此,要替换它们,您必须编写自己的中间件。

我不会为您编写该代码,但您需要的所有内容(以及代码示例!)都在这里:将 HTTP 处理程序和模块迁移到 ASP.NET Core 中间件

认证

关于Application_AuthenticateRequest,您还应该阅读有关Request features的文档。