读取会话数据的Page_Init与Page_Load

本文关键字:Page Load Init 会话 读取 数据 | 更新日期: 2023-09-27 18:29:48

这个问题可能很荒谬,很抱歉。

哪个事件最适合读取会话数据?Page_Load还是Page_Init事件?

目前,我正在使用Page_Load事件执行此类任务。但我在Page_Init事件中看到了一篇要做的文章。

谢谢。

更新:http://csharpdotnetfreak.blogspot.com/2008/11/detecting-session-timeout-and-redirect.html

读取会话数据的Page_Init与Page_Load

无所谓,在需要的地方使用事件。Session变量存储在服务器内存中(默认情况下),因此它不依赖于当前页面的生命周期。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

当http请求通过ASP.NET管道时,会话会附加到您的请求中。因此,在页面处理开始之前,您有自己的会话。会话存储在服务器上,并在会话id cookie的帮助下附加到您的用户请求中。这个cookie识别每个唯一的请求并附加会话数据(会话模块完成这项工作)。

我认为您对ViewState感到困惑,因为ViewState是在页面生命周期(LoadViewState和SaveViewState事件)中存储和读取的

此外,你所指出的文章是为了检测新的评估和超时。在Page_Int中进行所有检查是有意义的,这样可以尽早发送响应

您可以在页面生命周期的任何阶段访问会话数据。它不会以任何方式影响它。没有什么比得上"最好的"或"最坏的"。

更加一致。如果您的请求需要某种信息(无论您将其存储在何处),那么在执行请求之前,您应该检查是否存在信息。

如果您将信息存储在评估中而不是使用:

Global.asax:Application_BeginRequest

这可以防止您将单个需求复制粘贴到多页.aspx