2011-03-16 2 views
1

Я хотел бы знать разницу междуСессия в asp.net/c#

Session.clear();

Session.Abandon();

Session.RemoveAll();

Пожалуйста, объясните разницу, с которой я борюсь с моей сессией.

Спасибо в ожидании

+0

Возможный дубликат [В ASP.NET, когда следует использовать Session.Clear(), а не Session.Abandon()?] (Http://stackoverflow.com/questions/347377/in-asp-net-when -should-i-use-session-clear-rather-than-session-abandon) – balexandre

+0

Ответ слишком технический, и практический аспект не обсуждается, когда мы должны использовать session.clear(), в каких обстоятельствах мы должны использовать сеанс .abandon() и session.removeall(). Просто дать определение не будет считаться ответом, который не означает никого. Мы также должны рассмотреть, является ли пользователь новичком и насколько ясным является ответ. Спасибо всем, кто указал на сходство. –

+4

Это сайт для программистов. Если вы не можете понять технический ответ, это может быть не для вас. Голосование закрывается как дубликат. –

ответ

3

Session.Clear() удаляет все содержимое из объекта (значения). Сеанс с тем же ключом все еще жив.

Session.Abandon() разрушает сеанс и запускается событие Session_OnEnd. Если вы используете это, вы потеряете сессию и получите новый ключ сеанса. Подумайте об этом с помощью «log out»

Session.RemoveAll() как Clear() этот метод удаляет все элементы, которые были добавлены в коллекцию содержимого объекта Session.

+0

, любезно ли вы сказали бы, зачем вам нужен новый ключ сеанса в случае выхода из системы? –

+0

, так что если я использую session.removeall() в logout, пользователь не сможет войти в следующий раз? –

+0

Потому что он освободит объект состояния сеанса и его элементы на сервере, чтобы они могли собирать мусор. –

0

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

+0

Что означает u, удаляя переменные сеанса и сохраняя текущий сеанс в памяти? Удаляет ли сеансовые переменные не то же самое, что удаление сеанса? Не могли бы вы объяснить подробно? –

+1

Не то же самое. Подумайте о сеансе в виде ведра и переменных сеанса как элементов в ведре. Очистка удаляет только элементы в ковше, а не в ковше. Abandon удаляет ведро. –

+0

@Greg это одно из лучших объяснений, о которых я могу думать! Большое вам спасибо –