ASP.net MVC удаляет повторные вызовы данных - PullRequest
2 голосов
/ 09 ноября 2010

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

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

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

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

1 Ответ

2 голосов
/ 09 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...