3

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

哪个事件最适合读取会话数据Page_LoadPage_Init事件?

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

谢谢。

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

4

4 回答 4

6

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

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

于 2013-09-02T08:55:22.750 回答
1

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

于 2013-09-02T08:57:22.053 回答
1

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

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

此外,您指出的文章是用于检测新会话和超时。在 Page_Int 中进行所有检查是有意义的,以便尽早发送响应

于 2013-09-02T09:01:38.617 回答
0

更加一致。如果您的请求需要某种 INFORMATION(无论您将其存储在哪里),那么您应该在执行请求之前检查 INFORMATION 的存在。

如果您在会话中存储您的信息而不是使用:

Global.asax:Application_BeginRequest

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

于 2013-09-02T09:01:50.457 回答