2010-10-26 2 views
1

В моем приложении ASP.NET MVC я разрешаю пользователям входить в систему. Каждый пользователь связан с компанией. Идентификатор компании и данные компании не являются частью таблицы Users в базе данных. Пользователь и компания подключены через связанную таблицу (от одного до многих отношений). Идентификатор компании не входит в таблицу «Пользователи» в качестве внешнего ключа, поскольку дизайн таблицы «Пользователи» не предсказывал этого, и нам не разрешено изменять его.Где сохранить настройки пользователя после входа в систему?

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

Где я должен хранить настройки идентификатора компании, чтобы сделать его упорным во многих веб-запросах?

ответ

3

я вижу три жизнеспособных вариантов

  • Сессия

  • Cookie
    Это может быть или не быть в cookie аутентификации по вашему выбору.

  • Держите его в базе данных
    запросов, как и в случае необходимости. Если это необходимо меньше, чем x% времени, просто выберите его как и когда необходимо из источника данных.

+2

Я бы проголосовал за «Хранить его в базе данных» только по соображениям производительности. – NotMe

+0

В конечном итоге я решил пойти с Session, но сохранить его в SQL Server ради надежности. – mare

+0

@ mare- предлагает ли какое-либо преимущество перед его использованием в базе данных, если вы используете хранилище сеансов на основе SQL-сервера? –

1

Возможно, это звучит так глупо, но .. как насчет хранения информации в объекте и помещения этого объекта в сеанс?

+0

Я использую сессию в настоящее время. Так что это один из вариантов. Я также ищу другие варианты. – mare

0

Большинство людей используют Session или Cookies для этого типа функциональности:

Затрудняюсь ответить лучше, чем ответы на этот вопрос:

Cache VS Session VS cookies?

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