Это старая публикация, но если кто-то все еще ищет ответы, вот полное и пошаговое решение о том, как добиться чистого выхода из системы с новым идентификатором сеанса каждый раз.
Обратите внимание, что эта статья относится только к сайтам с поддержкой файлов cookie (cookieless = false).
Шаг (1) Измените свой файл web.config и добавьте флаг «recycrateExpiredSessionID», как показано ниже -
<sessionState mode="InProc" cookieless="false" regenerateExpiredSessionId="true" />
Шаг (2) Добавьте следующий код в событие выхода из системы -
Session.Clear();
Session.Abandon();
Response.Cookies.Add(New HttpCookie("ASP.NET_SessionId", ""));
Response.redirect(to you login page);
Шаг (3) Добавьте следующий код в событие page_load вашей страницы входа в систему -
if(!IsPostBack)
{
Session.Clear();
Session.Abandon();
}
Шаг 2 и 3 служат одной ВАЖНОЙ цели. Этот код обеспечивает создание нового идентификатора сеанса после нажатия кнопки «Войти». Это предотвращает слабое управление сеансами (уязвимость фиксации сеансов), которое, вероятно, будет обнаружено во время стороннего тестирования вашего сайта на проникновение.
Надеюсь, это поможет.