0

我正在研究意大利面条代码!!!!!!它有自己的登录和验证用户逻辑,并且此代码不使用.Net Framework 的标准例程来验证用户(会员提供程序和...),它将数据存储在会话变量中并在需要时使用它们。但是在这个过程中,我们有很多 response.redirect() 和 server.transfer() 并且在某些点之后多次调用 Global.asax 的 Session_Start() 并且这些调用会清除会话变量,正如您可能已经知道的那样。我一遍又一遍地查看了 Session_start() 调用的调用堆栈,但由于 session_start() 是请求的起点,我无法理解为什么调用此方法以及导致此调用的原因,请有人告诉我“ 调用 Session_start() 的主要原因是什么?它只是重定向到 Web 应用程序的新页面还是还有其他原因?如何检查调用 Session_Start() 的真实痕迹?”

4

1 回答 1

0

当您在当前会话中第一次请求资源(例如,ASPX 页面)时(当第一次创建会话 ID 时),这由 ASP.NET 平台在内部调用。

来自MSDN

如果请求开始新会话,则 Session_OnStart 子例程在请求开始时运行。如果发出的请求不包含 SessionID 值,或者请求中包含的 SessionID 属性引用了已过期的会话,则将启动一个新会话。您可以使用 Session_OnStart 事件来初始化会话变量以及跟踪与会话相关的信息。

于 2013-10-12T10:12:03.563 回答