Некоторые вещи, которые следует отметить из моего опыта:
Session.Abandon()
не делает недействительным текущий сеанс.Старые запросы выполняются нормально, если вы воспроизводите их.
Но после того, как вы ее вызвали, настройка содержимого словаря оставленных сеансов не имеет постоянного эффекта.Следующий запрос получает новый новый словарь сеанса (даже если вы используете тот же идентификатор сеанса, воспроизводя предыдущий запрос), и ни одно из ваших предыдущих изменений в нем (после вызова метода) отсутствует.
Итак,кажется, что Session.Abandon()
полностью останавливает сохранение всей сессии, в то время как Session.Clear()
только удаляет его данные.
И, кроме того, если вам нужно защитить приложение от атак воспроизведения, вам следует добавить некоторую логикукоторый проверяет сеансы и не зависит ни от одного из этих встроенных методов.Похоже, что они предназначены только для управления сохранением данных сеанса, а не для защиты вашего приложения.