2013-02-06 3 views
1

О чем я не понимаю.Что представляет собой экземпляр/сеанс веб-приложения?

Скажем, у меня есть SomeModule.dll

Он имеет статический класс с именем UserSession.

Могу ли я, например, безопасно хранить информацию о пользователях конкретных здесь: Ex:

UserSession.Name = "xxx" 

Я знаю, что могу использовать HTTPConext.Session .... но мне интересно именно сферу сессии/В основном, если пользователь имеет длительный сеанс. Скажите, что пользователь входит в систему, и я храню некоторые вещи в сеансе (пользователь) ...

Если он приходит через 3 недели, и я прочитал его cookie, и он по-прежнему действителен, страница должна выглядеть и выглядеть как он никогда не уходил. Когда HTTPContext или любые переменные сеанса стираются и должны быть повторно запрошены и сброшены?

Благодаря

+0

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

ответ

1

Сеанс пользователя длится только определенное количество времени последнего запроса, я считаю 20 минут по умолчанию. После этого может продолжаться еще несколько минут, в зависимости от того, когда сборщик мусора выполняет свою работу. Это не продлится три недели. Вы можете сохранить необходимые значения в файле cookie или в файле cookie со ссылкой на запись базы данных. Однако все это игнорирует проблемы безопасности ...

+0

Сессия зависит от сборщика мусора? Вы в этом уверены? –

+0

@Shai Я не мог найти онлайн-ссылку, которая отвечает на этот вопрос. Я считаю, что это правильно на основе предыдущих чтений. Я только что получил книгу C# 5 так скоро, что смогу обновить этот ответ, правильно ли это ... –

+1

Отлично. Спасибо за ответ. Я был бы очень заинтересован в ответе в любом случае. –

0

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

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