Как уничтожить все сеансы в одно время в asp.net?

Я хочу уничтожить все сеансы за один раз. Я пробовал метод Session.Abondon(), но я не знаю, почему это не уничтожает все сеансы.

Ответ 1

Вы не можете уничтожить все сеансы, вы можете очистить текущий сеанс. Вероятно, вам придется переработать пул приложений, чтобы очистить все сеансы.


Используйте HttpSessionState.Clear для очистки текущего сеанса

Из MSDN - метод HttpSessionState.Clear

Удаляет все ключи и значения из коллекции состояний сеанса.

Назовите его так:

Session.Clear();

Ответ 2

Я хочу уничтожить все сеансы за один раз

Я уверен, что вы не можете этого сделать, не дожидаясь повторного использования приложения.

В настоящее время принятый ответ предполагает использование Session.Clear, но это только очищает текущий сеанс - это то же самое, что и Session.RemoveAll.

Почему существуют два метода Clear и RemoveAll, которые делают то же самое? Я подозреваю, что RemoveAll предоставляется для обратной совместимости с объектом ASP классического сеанса, а Clear - это более обычное имя метода для очистки элементов из .NET Collection.

Ответ 3

Существует три метода, которые могут удалить сеанс Переменные

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

Clear() и RemoveAll() выполняют одно и то же: удалите переменные сеанса но сохранить текущий сеанс в памяти. Принимая во внимание, что Abandon() завершает текущий сессии.

Ответ 4

попробовать:

Session.Contents.RemoveAll()

Ответ 6

Вы должны использовать

this.Page.Session.Clear();

Abandon предназначен только для текущего сеанса.