Обновить учетные данные после входа в систему - PullRequest
0 голосов
/ 26 апреля 2019

Я позволяю своим пользователям входить в систему, используя разные социальные логины, такие как github и facebook.

Моя проблема в том, что, когда они создали различные типы объектов в системе, мне нужно назначить им разрешения для новых объектов.

Я использовал претензии для этого, делая что-то вроде этого:

  1. Создание новой личности / принципала с обновленными утверждениями
  2. Выйти из текущей схемы аутентификации
  3. Войти с помощью CookieAuthentication

Код:

var currentScheme = User.Claims.First(x => x.Type == ClaimTypes.AuthenticationMethod);
var principal = await _principalService.CreateAppPrincipal(User.GetUserId());
await HttpContext.SignOutAsync(currentScheme.Value);
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

Это работало нормально, пока я не обновил ядро ​​asp.net 2.1.

Теперь я получаю следующую ошибку:

Обработчиком аутентификации, зарегистрированным для схемы «Facebook», является «FacebookHandler», который нельзя использовать для SignOutAsync. Зарегистрированными схемами выхода являются: Identity.Application, Identity.External, Identity.TwoFactorRememberMe, Identity.TwoFactorUserId, Cookies. '

Текущие заявки (до обновления):

enter image description here

Почему это? Почему я не могу выйти из системы, если они использовали социальную учетную запись?

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