ASP.net MVC удаляет повторные вызовы данных

У меня есть сайт asp.net mvc, который работает с аутентификацией ASP.net. У меня есть таблица UserInformation, в которой также хранится дополнительная информация о каждом пользователе. Практически на каждой странице, к которой я обращаюсь в базу данных, нужно хотя бы один раз извлечь запись UserInformation для текущего пользователя.

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

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

заранее спасибо

1 ответ

Вы можете использовать пользовательские IIdentity и IPrincipal. Вот хорошая статья, описывающая, как этого добиться (интересная часть происходит в btnAuthenticate_Click метод, который в приложении ASP.NE MVC был бы действием контроллера аутентификации, здесь выдается билет аутентификации с пользовательскими данными). В этом примере идея заключается в том, что билет аутентификации создается вручную, а userData свойство используется для хранения дополнительной информации. Это может не подходить для вашего случая, если у вас много данных, потому что они хранятся в cookie. Но вместо того, чтобы использовать userData Вы можете хранить его где-то еще, например, Session или Cache Вы также можете написать кастом [Authorize] атрибут для работы с пользовательским принципалом (часть, которая соответствует Application_AuthenticateRequest метод в статье должен перейти в этот пользовательский фильтр авторизации, чтобы восстановить пользователя обратно).

Другие вопросы по тегам