20

我想一次销毁所有会话。我已经尝试过Session.Abondon()方法,但我不知道为什么这不会破坏所有会话。

4

6 回答 6

25

您不能销毁所有会话,只能清除当前会话。您可能必须回收应用程序池以清除所有会话。


用于HttpSessionState.Clear清除当前会话

来自 MSDN - HttpSessionState.Clear 方法

从会话状态集合中删除所有键和值。

像这样称呼它:

Session.Clear();
于 2012-08-29T06:49:21.317 回答
4

我想一次销毁所有会话

我很确定你不能这样做,除非回收应用程序。

当前接受的答案建议使用Session.Clear,但这只会清除当前会话 - 它与Session.RemoveAll.

为什么有两种方法Clear并且RemoveAll做完全相同的事情?我怀疑RemoveAll它是为了向后兼容ASP Classic Session 对象而提供的,而Clear它是从 .NET 集合中清除项目的更常用的方法名称。

于 2012-08-29T10:43:17.377 回答
3

有三种方法可以删除会话变量

Session.Clear()
Session.RemoveAll()
Session.Abandon()

Clear()RemoveAll()执行相同的操作:删除会话变量,但将当前会话保留在内存中。然而,Abandon()结束当前会话。

于 2012-08-29T06:51:31.797 回答
0

尝试:

Session.Contents.RemoveAll()
于 2012-08-29T06:50:38.310 回答
0

使用Session.Clear()Session.RemoveAll()方法

Session.Clear()
    or
 Session.RemoveAll()
于 2012-08-29T06:51:03.763 回答
0

你必须使用

this.Page.Session.Clear();

Abandon 仅适用于当前会话。

于 2012-08-29T06:54:07.613 回答