2012-06-28 1 views
0

Я создаю приложение MVC3, которое должно хранить защищенную пользовательскую информацию, такую ​​как имя пользователя, имя пользователя, телефон и адрес электронной почты. В своем исследовании я вижу людей, использующих объект httpcontext, а также хранение пользовательских объектов в состоянии сеанса.В чем разница между хранением данных в сеансе или объектом httpcontext

Session["User"] = user;

Предыдущие данные хранятся в пользовательском объекте. Мне интересно, какая разница между Session [""] и объектом HttpContext и если любой из этих методов является безопасным способом хранения этих данных.

Спасибо за ваши мысли!

+0

как вы храните объекты на «HttpContext»? у вас есть этот образец кода? – Aristos

ответ

2

HttpContext.Current.Items является хранилищем для каждого запроса. Он недоступен другим пользователям.

Сессия является магазином в USER. У него плохой воздух, окружающий его с эффективностью, поскольку сеанс заблокирован за каждый сеанс пользователя для каждого запроса, поэтому перекрывающиеся запросы могут иметь проблемы с производительностью в ожидании того, что объект станет доступным.

Оба не доступны другим пользователям, если только в случае сеанса кто-то ворует (sniifs в сети) идентификатор сеанса и захватывает этот сеанс. Даже тогда данные недоступны, если у вас нет страницы трассировки, но имейте в виду, что злой пользователь может просматривать страницы как другой пользователь, если способен украсть это и формирует токен аутентификации (как только один пример).

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

  • Нет связанных вопросов^_^