Почему нельзя уничтожить только один сеанс - PullRequest
0 голосов
/ 13 июля 2011

Q:

Я знаю, что для уничтожения всех сессий я могу использовать:

Session.Abandon()

По моему вопросу.

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

Session.Remove("varName")

вместо.

Ответы [ 3 ]

7 голосов
/ 13 июля 2011

Прежде всего, вы говорите о переменных сеанса, а не сеансах. У каждого пользователя есть один сеанс и один объект Session, в котором можно хранить несколько переменных.

Вы используете Session.Abandon для прекращения сеанса после завершения текущего запроса, что приведет к удалению объекта Session.

Вы используете метод Session.Remove для удаления одной переменной из объекта Session.

1 голос
/ 13 июля 2011

Вы ошиблись между сеансом и переменными сеанса. Пользователю, просматривающему ваш сайт, назначается только 1 сеанс, и в этом 1 объекте сеанса вы можете хранить много переменных сеанса.

Session.Abandon удалит текущий сеанс подключенного пользователя.

Session.Remove удалит определенные переменные сеанса, упомянутые вами.

Session.Clear удалит все переменные сеанса сеанса, но не удалит сеанс.


Обратитесь к следующим ссылкам для сеанса и его использования:

CodeProject: исследование сеанса в ASP.NET

Состояние сеанса ASP.NET

Обзор состояния сеанса ASP.NET

1 голос
/ 13 июля 2011

Session.Clear() удалит все элементы из коллекции состояния сеанса, в то время как Session.Remove(<item name>) удалит только один элемент из коллекции и оставит оставшуюся без изменений.Session.Abandon() уничтожит весь сеанс и начнет новый сеанс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...