2014-01-13 4 views
3

UserLoginInfo в Asp.Net идентичности является запечатанный класс с двумя атрибутами:Настройка UserLoginInfo в Asp.Net Идентичность

LoginProvider и ProviderKey

Я хотел бы добавить один дополнительную информацию (например, как электронная почта например), чтобы он имел больше смысла для пользователя при управлении своими SSO-ассоциациями.

Например, если вы пытаетесь войти в систему с помощью Google, в управлении страницу аккаунта вы видите

Provider: Google 
ProviderKey: https://www.google.com/accounts/o8/id?id=AItOawkmqLbSJXXXXXXXXXXXXX--c 

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

ответ

1

Этот класс используется как строго типизированная пара для встроенных API-интерфейсов usermanager, которые использовали бы поставщика строк, string providerKey. Если вы хотите получить дополнительную информацию, вы можете либо получить ее непосредственно в своем приложении, либо если вы хотите создать что-то более многоразовое, вы можете извлечь из UserManager и добавить новые API-интерфейсы, возвращающие что-то, соответствующее вашим потребностям.

+0

Спасибо за ответ, и я понимаю, что я могу написать весь код для достижения того, чего хочу. Тем не менее, я бы предпочел не изобретать колесо, если мне это не нужно. В этом случае, похоже, нет никакого способа, поскольку расширение GetExternalLoginInfo возвращает только ExternalLoginInfo, и оно жестко закодировано для использования UserLoginInfo. – BlueFox

+1

В следующем выпуске будет существовать свойство ExternalIdentity, которое зависает от ExternaLoginInfo, которое сопоставляет с тем, что создает свойство ClaimsIdentity, предоставленное внешним логином входа. Этого должно быть достаточно, чтобы вы могли извлечь любые данные, которые были возвращены внешним поставщиком. Таким образом, вы можете извлечь электронную почту через extLoginInfo.ExternalIdentity –

+1

Я вижу, спасибо за обновление. Можно ли также сделать UserManager доступным для конфигурируемого хранилища IUserLoginInfo? Таким образом, внешние данные входа (электронная почта) могут быть сохранены в UserLoginInfo, так как нет смысла хранить эти данные с помощью IUser. – BlueFox

Смежные вопросы