这个问题可能很荒谬,对不起。
哪个事件最适合阅读会话数据 - Page_Load
或Page_Init
事件?
目前,我正在使用Page_Load
事件执行此类任务。但是我在Page_Init
事件中看到了an article。
感谢。
更新:http://csharpdotnetfreak.blogspot.com/2008/11/detecting-session-timeout-and-redirect.html
答案 0 :(得分:5)
没关系,请在您需要的地方使用。 Session
变量存储在服务器内存中(默认情况下),因此它不依赖于当前页面的生命周期。
答案 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