У меня есть приложение ASP.NET MVC, работающее под IIS7. Он использует управление сеансом по умолчанию в процессе, которое, в соответствии со всем, что я прочитал, должно потерять сессию пользователей после повторного использования пула приложений. Это, похоже, не теряет его. Даже сброс IIS не теряет сессию. Что-то изменилось в IIS7, который поддерживает сеанс?IIS7 ASP.NET in-proc session НЕ теряется после утилизации приложения
4
A
ответ
2
Это связано с воспроизведением файлов cookie - происходит то, что ваш браузер отправляет cookie со старым аутентификационным билетом, который принимается как новый сеанс, так как веб-сервер не сохраняет действительные и истекшие билеты аутентификации для последующего сравнения. Это делает ваш сайт уязвимым для повторной атаки, если злоумышленник получает действительный файл cookie проверки подлинности. Для повышения безопасности при использовании форм аутентификации печенье см MSDN ссылку ниже:
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx
Вы определенно видим одни и те же данные сессии после рецикла, или только один и тот же идентификатор сессии? – stevemegson
Можете ли вы предоставить свой раздел конфигурации сеанса из вашего web.config? Похоже, что вы используете сервер состояния или сервер sql вместо сервера по умолчанию в процессе. –
@stevemegson. Возможно, это только идентификатор сеанса. Возможно, я не понимаю, как хранятся данные сеанса. Пользователь по-прежнему регистрируется после повторного использования приложения, но я не сохраняю никаких других данных в сеансе. Пользователь должен быть выведен из системы, хотя, не должны ли они, поскольку сервер должен потерять свои идентификаторы сеанса? –