移除HttpContext.Current.Session

4
我有一个应用程序,存储着会话变量。当我执行注销时,我调用了可用会话的RemoveAll()方法。但是这个方法似乎没有起作用。你知道如何强制删除会话变量吗?祝好。

1
“该方法似乎不起作用”并不是一个好的问题描述。你怎么知道的?有什么症状?实际上发生了什么? - Oded
1个回答

12
Session.Abandon()
取消当前会话。
Session.Clear() 

调用Session.Abandon()方法会销毁Session对象中存储的所有对象并释放它们的资源。如果您没有显式调用Abandon方法,则当会话超时(我可以补充:触发Session_OnEnd事件)时,服务器会销毁这些对象。

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

Session.Clear()只是从Session对象中删除所有值(内容)。具有相同键的会话仍然存在。


非常感谢。两种方法有什么区别?Abandon() 方法是否会删除特定会话中保存的对象?Clear() 方法具体是做什么的?它是否将会话对象恢复到其默认值? - Lorenzo B
@Massimiliano 关于: Session_OnEnd事件被触发。注意:对于进程外的会话存储提供程序(SQL或StateServer),Session_OnEnd不会被触发。 - felickz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接