2015-10-17 3 views
0

У меня есть веб-приложение, которое использует членство Asp.net для аутентификации пользователя. И, как я понимаю, когда пользователь входит в систему, информация об этом пользователе хранится в сеансе, но когда я перезапускаю сервер, пользователь все равно регистрируется.Информация о пользователе остается после перезагрузки сервера

Не удалось ли сеанс удаляться при перезапуске сервера? Я не понимаю, как пользователь все еще зарегистрирован ...

+0

Почему вы думаете, она хранится в сессии? Ваш код записывает что-либо на сеанс? Скорее всего, токен аутентификации находится в файле cookie на клиенте. – David

ответ

3

Информация о пользователе, который вошел в систему, хранится в файле cookie, и он проходит между браузером пользователя и сервером с каждым запросом.

Перезагружаем сервер не имеет ничего общего с куки, в частности, печенье остается в силе, он правильно расшифровывает так что пользователь считается авторизованы.

Если вам действительно нужно прекратить все пользовательские сессии, один способов изменения машинного ключа приложения, крипто ключа, который используется для шифрования/дешифрования файлов cookie.

https://msdn.microsoft.com/en-us/library/vstudio/w8h3skw9(v=vs.100).aspx

+0

Когда сеансы пользователей хранятся в памяти, перезапуск сервера вытирает их. Поэтому было бы неплохо также, чтобы пользователи выходили из системы, поэтому они могут начать все заново. –

+0

@ SørenMors: не совсем, представьте, что вы всегда выходите из Google или Facebook, потому что они где-то перезапускают свои серверы. И сеансы в памяти не являются хорошим примером, как часто в производственной среде, сеансы базы данных предпочтительнее, чтобы убедиться, что они не потеряны в случае случайных перезапусков сервера. –

+0

Это правда, к сожалению, унаследованное приложение, которое я поддерживаю, использует сеансы в памяти и не обрабатывает перезапуск сервера очень хорошо. Таким образом, лучшим решением было бы иметь логины, когда сервер перезагрузится. –

Смежные вопросы