我正在研究意大利面条代码!!!!! 它有自己的逻辑用于登录和验证用户,并且此代码不使用.Net Framework的标准例程来验证用户(成员资格提供者和...),它将数据存储在会话变量中并在需要时使用它们。 但是在这个过程中我们有很多response.redirect()和server.transfer() 并且在一些点之后多次调用Global.asax的Session_Start()并且这些调用会清除您可能已经知道的会话变量。 我一遍又一遍地回顾了Session_start()调用的调用堆栈,但是因为session_start()是请求的起点,我无法理解为什么调用这个方法以及导致这个调用的原因,请有人告诉我“主要原因是什么?调用Session_start()?它只是重定向到Web应用程序的新页面还是还有其他原因?我如何检查调用Session_Start()的真实痕迹?“
答案 0 :(得分:0)
当您在当前会话中首次请求资源(例如,ASPX页面)时(当为其创建会话ID时),ASP.NET平台会在内部调用此方法。第一次)。
来自MSDN:
如果是,则Session_OnStart子例程在请求开始时运行 请求开始一个新的会话。如果a,将启动一个新的会话 请求是否包含SessionID值或者不包含 请求中包含的SessionID属性引用该会话 已过期。您可以使用Session_OnStart事件进行初始化 会话变量以及跟踪与会话相关的信息。