Обновить куки после аутентификации

Наше веб-приложение. Команда безопасности предложила нам менять cookie при каждом повышении авторизации.

Соответственно, я хотел обновить куки на стороне клиента после аутентификации. И я использовал следующий код:

  System.Web.HttpCookie cookie = Request.Cookies["ASP.NET_SessionId"];
  System.Web.HttpCookie dummyCookie = new System.Web.HttpCookie("SessionId");
  cookie.Value = dummyCookie.Value;
 Response.Cookies.Add(cookie);

Проблема в том, что как только файл cookie обновляется, пользователь снова считается не прошедшим проверку подлинности.

Заранее спасибо.

0 ответов

Я реализовал, как показано ниже, чтобы справиться с этим в моем проекте.

Когда пользователь просматривает страницу входа в приложение. Я удаляю sessionid в файле cookie сеанса, используя приведенный ниже код при загрузке страницы.

if(!IsPostBack)
{
            HttpContext.Current.Session.Clear();
            HttpContext.Current.Session.Abandon();
            HttpContext.Current.Session.RemoveAll();
            Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}

Приведенный выше код очистит идентификатор сеанса в файле cookie сеанса. Теперь, когда пользователь вводит соответствующие учетные данные, asp.net автоматически создаст новый идентификатор сеанса, поэтому браузер получит новый сеанс после успешной аутентификации. Если пользователь ввел неправильные учетные данные, то, используя приведенный выше код, я снова сбрасываю идентификатор сеанса, чтобы новый идентификатор сеанса автоматически создавался при успешной аутентификации.

Инструменты безопасности больше не показывают проблему фиксации сеанса после того, как в моем проекте была реализована вышеописанная реализация. Надеюсь, это поможет.

Другие вопросы по тегам