На веб-сайте Asp.net Mvc 6 я настроил готовый AccountController, чтобы добавить пользовательское утверждение перед вызовом userManager.CreateAsync(), как при регистрации
- с локальной учетной записью (электронная почта/пароль), в методе
Register()контроллера - с внешним провайдером (google/facebook), в
ExternalLoginConfirmation()контроллера
Теперь, что я хотел бы сделать, сразу после входа пользователя оба
- в методе
Login()после вызоваsignInManager.PasswordSignInAsync()и - в методе
ExternalLoginCallback()после вызоваsignInManager.ExternalLoginSignInAsync()
... чтобы получить это утверждение, в идеале, не обращаясь к БД, чтобы получить пользователя.
Я заметил, что если я смотрю на пользователя сразу после входа, коллекция утверждений пуста. Однако, если я посмотрю на это в последующем действии контроллера, коллекция Claims будет заполнена, и в ней будет моя пользовательская претензия.
Вопрос в том, почему утверждения не заполняются сразу после входа в систему (полагаю, код входа не обновляет CurrentPrincipal?) и есть ли другое место, где можно проверить сразу после входа, чтобы получить утверждения, не нажимая БД?