Как лучше всего сделать так, чтобы данные были доступны, когда пользователь вошел в систему?

В моем приложении у меня есть требование хранить в течение периода, когда пользователь остается в системе, некоторые переменные, которые используются для предоставления настраиваемого опыта того, как пользователь просматривает свои данные (предварительно определенные фильтры, язык и т. д.). Мои необходимые данные не более 1Кб.

Я прочитал много сообщений в блогах, которые определенно призывают не хранить эти данные в объекте Session. Во многих из этих сообщений в блогах авторы предлагают вместо этого использовать TempData.

Насколько я понимаю, TempData — хороший выбор для кратковременных временных данных и не подходит для кэширования данных в течение всего периода, пока пользователь остается в журнале.

Я ошибаюсь? Какая хорошая альтернатива подходит для моего сценария?

Спасибо за помощь :)


person Lorenzo    schedule 18.09.2010    source источник


Ответы (1)


Два варианта:

  1. Печенье
  2. База данных

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

Сессия также является опцией, но будьте осторожны, если ваш сайт работает в веб-ферме — в этом случае вам понадобится постоянство сеанса вне процесса.

Насколько я понимаю, TempData — хороший выбор для кратковременных временных данных и не подходит для кэширования данных в течение всего периода, пока пользователь остается в журнале.

Вы абсолютно правы. TempData следует использовать только в следующем сценарии: пользователь вызывает действие контроллера, это действие контроллера сохраняет что-то в TempData и немедленно перенаправляет на другое действие контроллера (оно никогда не отображает представление), которое извлекает сохраненные данные и отображает представление (перенаправление После сценариев POST).

person Darin Dimitrov    schedule 18.09.2010