У меня есть 2 разных приложения ASP.NET в одном домене, разные пулы приложений в IIS. Приложение 1 открывает приложение 2, используя window.open(url)
. На этом этапе cookie-файлы распределяются между обоими приложениями.
Приложение 2 запускает следующий код после входа в систему:
Context.Response.Cookies["ASP.NET_SessionId"].Value = string.Empty;
Context.Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddMonths(-20);
Цель этого кода - предотвратить уязвимость Session Fixation, из-за которой злоумышленник может украсть идентификатор сеанса перед входом в систему и использовать его после входа в систему для аутентификации себя как законного пользователя.
Однако это также меняет идентификатор сеанса в Приложении 1, эффективно входя в систему пользователя из приложения.
Как я могу предотвратить это? и какими еще подходами я мог бы следовать?