Page_Init与Page_Load读取会话数据

时间:2013-09-02 08:47:04

标签: c# asp.net

这个问题可能很荒谬,对不起。

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

目前,我正在使用Page_Load事件执行此类任务。但是我在Page_Init事件中看到了an article

感谢。

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

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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

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

的Global.asax:的Application_BeginRequest

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