UserLoginInfo в Asp.Net идентичности является запечатанный класс с двумя атрибутами:Настройка UserLoginInfo в Asp.Net Идентичность
LoginProvider и ProviderKey
Я хотел бы добавить один дополнительную информацию (например, как электронная почта например), чтобы он имел больше смысла для пользователя при управлении своими SSO-ассоциациями.
Например, если вы пытаетесь войти в систему с помощью Google, в управлении страницу аккаунта вы видите
Provider: Google
ProviderKey: https://www.google.com/accounts/o8/id?id=AItOawkmqLbSJXXXXXXXXXXXXX--c
, который не очень значимым с точки зрения управляющего. Какие-либо предложения?
Спасибо за ответ, и я понимаю, что я могу написать весь код для достижения того, чего хочу. Тем не менее, я бы предпочел не изобретать колесо, если мне это не нужно. В этом случае, похоже, нет никакого способа, поскольку расширение GetExternalLoginInfo возвращает только ExternalLoginInfo, и оно жестко закодировано для использования UserLoginInfo. – BlueFox
В следующем выпуске будет существовать свойство ExternalIdentity, которое зависает от ExternaLoginInfo, которое сопоставляет с тем, что создает свойство ClaimsIdentity, предоставленное внешним логином входа. Этого должно быть достаточно, чтобы вы могли извлечь любые данные, которые были возвращены внешним поставщиком. Таким образом, вы можете извлечь электронную почту через extLoginInfo.ExternalIdentity –
Я вижу, спасибо за обновление. Можно ли также сделать UserManager доступным для конфигурируемого хранилища IUserLoginInfo? Таким образом, внешние данные входа (электронная почта) могут быть сохранены в UserLoginInfo, так как нет смысла хранить эти данные с помощью IUser. – BlueFox