Это зависит от вашего сайта / приложения. Общие правила примерно такие:
Сохранение в сеансе работает хорошо, если число одновременных пользователей довольно мало, а данные относительно невелики.
Сохранение в cookie работает хорошо, если число одновременно работающих пользователей велико, а объем данных относительно низок. Очевидно, что файлы cookie доступны для публичного просмотра, поэтому, если они чувствительны, такие как электронная почта, они должны быть зашифрованы.
Сохранение в базе данных хорошо работает, если размер данных большой.
Примечание. Как уже говорили другие, если вы используете веб-ферму, тогда я забуду о сохранении в сеансе.
Мартин Фаулер имеет хорошее описание параметров в «Шаблонах архитектуры корпоративных приложений», но я не уверен, есть ли у него что-то в сети.
Если сайт / приложение требует аутентификации, тогда .Net имеет хорошую встроенную функциональность для хранения пользовательских ролей и уникальных имен пользователей. Если вы сохраните это во время аутентификации, то к этим значениям можно будет получить доступ через User.IsInRole () и User.Identity.Name.
Хранение в сеансе вызывает проблемы с производительностью? Если размер ваших данных относительно невелик, таких как электронная почта, я бы использовал сеанс или куки и избегал базы данных. Запустите тесты производительности и посмотрите, что лучше для вас.