Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Asp.net Mvc 6 получает претензии пользователей сразу после входа в систему

Автор вопроса: adrian h.Ответов: 1

На веб-сайте Asp.net Mvc 6 я настроил готовый AccountController, чтобы добавить пользовательское утверждение перед вызовом userManager.CreateAsync(), как при регистрации

  • с локальной учетной записью (электронная почта/пароль), в методе Register() контроллера
  • с внешним провайдером (google/facebook), в ExternalLoginConfirmation() контроллера

Теперь, что я хотел бы сделать, сразу после входа пользователя оба

  • в методе Login() после вызова signInManager.PasswordSignInAsync() и
  • в методе ExternalLoginCallback() после вызова signInManager.ExternalLoginSignInAsync()

... чтобы получить это утверждение, в идеале, не обращаясь к БД, чтобы получить пользователя.

Я заметил, что если я смотрю на пользователя сразу после входа, коллекция утверждений пуста. Однако, если я посмотрю на это в последующем действии контроллера, коллекция Claims будет заполнена, и в ней будет моя пользовательская претензия.

Вопрос в том, почему утверждения не заполняются сразу после входа в систему (полагаю, код входа не обновляет CurrentPrincipal?) и есть ли другое место, где можно проверить сразу после входа, чтобы получить утверждения, не нажимая БД?

  • Я могу воспроизвести то, что вы видите, может быть, это так задумано... попробуйте опубликовать этот вопрос по адресу github.com/aspnet/identity/issues Kiran Challa 28.11.2015

securityclaims-based-identity

Ответы

Ответ 1 · рейтинг 1 · Dawid Rutkowski

Вы можете попытаться реализовать свой собственный ApplicationUserStore и заполнить любые свойства пользователя (или объекта, который используется в качестве объекта идентификации), которые вам нужны.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы