В чем разница между уничтожением сеанса и удалением его значений? Не могли бы вы привести пример, демонстрирующий это?
Я искал этот вопрос, но не понимаю полного ответа. Некоторые ответы:
-
Session.Abandon()
уничтожает сеанс -
Session.Clear()
просто удаляет все значения
Друг сказал мне это:
Очистка сеанса не отменяется сессии, он все еще существует с тот же идентификатор для пользователя, но с значения просто очищаются.
Abandon уничтожит сеанс полностью, что означает, что вам нужно начните новую сессию, прежде чем сможете хранить больше значений в сеансе для этого пользователя.
Нижеприведенный код работает и не генерирует никаких исключений.
Session.Abandon();
Session["tempKey1"] = "tempValue1";
Когда вы покидаете() сеанс, вы (или скорее пользователь) получит новый SessionId
Когда я тестирую сеанс, он не меняет никаких изменений, когда я отказываюсь от сеанса.
Я просто нахожу одно различие:
Session.Abandon()
вызывает событие Session_End