Где я могу сохранить, к какой компании принадлежит пользователь с ASP.NET MVC и MembershipProvider? - PullRequest
0 голосов
/ 11 июня 2009

Когда пользователь входит в мое приложение ASP.NET MVC, мне необходимо сохранить, к какой компании принадлежит этот пользователь. Компания, к которой они принадлежат, определит, к какой базе данных ~ все ~ их запросы поступят, поэтому для меня важно запросить их компанию, как только они войдут в систему и сохранят ее, поэтому мне не придется выполнять этот поиск снова. *

Где / Как хранить этот идентификатор компании? Сессия? Каким-то образом настроить членство MembershipProvider, которое позволило бы мне сохранить эту информацию в объекте User?

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

Ответы [ 3 ]

1 голос
/ 11 июня 2009

Вы можете написать свой собственный модуль Auth для расширения FormsAuthentication и сохранить компанию в IPrincipal.

Затем вы можете сделать User.Identity.Company, как User.Identity.Name .

Это более предварительная работа, чем застревание компании в уже существующем сегменте, таком как Cache или Session, но она позволяет вам написать довольно легкий код, когда все будет готово.

1 голос
/ 11 июня 2009

Вы можете использовать свойства профиля ASP.NET, но вам нужно создать собственный обработчик для них. Посмотрите ответ седьмого элемента на этот вопрос , чтобы узнать, как начать работу.

0 голосов
/ 11 июня 2009

Я бы положил его в сессию, потому что в вашем случае использование профиля означает 1 дополнительный прием в обе стороны для БД.

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

...