会话放弃

时间:2012-07-25 15:49:02

标签: session session-state session-variables

我在我的网站Session [“name”],Session [“lastname”]和Session [“username”]中有3个活动Sessions,Session.Abandon()会放弃所有这些吗?

3 个答案:

答案 0 :(得分:3)

实际上,您有一个活动会话(不是三个)。该会话具有与之关联的三个键/值对。

是的,一旦处理完当前页面,Session.Abandon()将在放弃会话的过程中删除所有这些变量。

  

调用Abandon方法后,当前会话不再有效,可以启动新会话。

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon.aspx

  

当调用Abandon方法时,当前的Session对象排队等待删除,但在处理完当前页面上的所有脚本命令之前,实际上并未删除。这意味着您可以在与调用Abandon方法相同的页面上访问存储在Session对象中的变量,但不能访问任何后续Web页面。

http://msdn.microsoft.com/en-us/library/ms524310(v=vs.90).aspx

<强>更新

如果你想在页面完成执行之前“摆脱”键/值对,你可以像这样清除它们:

Session.Contents.RemoveAll()

http://msdn.microsoft.com/en-us/library/ms524866(v=vs.90

答案 1 :(得分:0)

是的,对象将被销毁,但不会立即销毁(来自msdn

  

调用Abandon方法时,当前的Session对象是   排队等待删除,但实际上并没有被删除   已处理当前页面上的脚本命令。这意味着   您可以访问存储在Session对象中的变量   page作为对Abandon方法的调用,但不在任何后续Web中   页。

这是一个会话和3个变量。如果您需要删除它们,请尽快将它们指向 null ,数据将立即成为GC的主题(这不是确定性的)。

Session["name"] = null;
Session["lastname"] = null;
Session["username"] = null;

答案 2 :(得分:0)

是的,它会销毁存储在Session对象中的所有对象并释放它们的资源。