如何在asp.net中一次销毁所有会话?

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

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


使用HttpSessionState.Clear清除当前会话

来自MSDN – HttpSessionState.Clear方法

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

称之为:

 Session.Clear(); 

我想一次销毁所有会话

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

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

为什么ClearRemoveAll有两种方法完全相同? 我怀疑RemoveAll是为了向后兼容ASP Classic Session对象而提供的,而Clear是用于从.NET Collection清除项目的更常用的方法名称。

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

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

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

尝试:

 Session.Contents.RemoveAll() 

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

 Session.Clear() or Session.RemoveAll() 

你必须使用

 this.Page.Session.Clear(); 

放弃仅适用于本届会议。