Каков наилучший способ кэширования пользовательского IPrincipal для веб-сайта asp.net mvc? - PullRequest
2 голосов
/ 14 июня 2011

Я реализовал собственный IPrincipal, который я установил в

 protected void Application_PostAuthenticateRequest(Object sender, EventArgs args)

, выполнив

Context.User = GetCustomPrincipal(User.Identity);
Thread.CurrentPrincipal = Context.User;

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

Каков наилучший способ кэшировать это? Я думал о том, чтобы сохранить его на сессии, это хорошая идея?

РЕДАКТИРОВАТЬ: глупо меня.Сессия даже не доступна в этом методе, должны были проверить перед публикацией вопроса.

Но вопрос все еще остается ..

1 Ответ

1 голос
/ 14 июня 2011

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

...