2

У меня есть приложение ASP.Net MVC3. Когда вызывается действие LogIn, я использую MemberhipProvider для проверки пользователя и FormsAuthentication для установки cookie.ASP.Net MVC3 FormsAuthentication общее зарегистрированное событие

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

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

Является ли HttpApplication.AuthorizeRequest() лучшим местом для этого? Очевидно, что это вызвано для каждого запроса, поэтому я надеялся, что есть что-то, что я мог бы использовать, просто указав, что пользователь был аутентифицирован - либо явно после входа в систему, либо при автоматической аутентификации.

ответ

1

Существует несколько событий, которые срабатывают по каждому запросу, HttpApplication.AuthorizeRequest() должен работать.

Для того, чтобы только извлечь из базы данных для зарегистрированных пользователей, вы можете проверить Name свойства User.Identity который только получает набор, когда пользователь выполняет проверку подлинности:

if(!string.IsEmpty(User.Identity.Name)) 
{ 
//make call to database 
}