Как я могу запросить таблицу ASPNetUserLogins в новой системе идентификации Microsoft?

На новом сайте я разрешаю людям регистрироваться либо с использованием локальной учетной записи (т. е. они заполняют форму на моем сайте со своей информацией, либо они могут войти с помощью Facebook/Twitter и т. д. Когда они входят с помощью Facebook или Twitter, запись добавляется в таблицу ASPNetUserLogins - для справки столбцы в таблице

UserID
LoginProvider
ProviderKey

UserID соответствует идентификатору в таблице ASPNetUsers, провайдеры входа просто говорят «Twitter» или «Facebook», а ProviderKey — это идентификатор Facebook или Twitter. Когда кто-то использует шаблон Facebook MVC, идентификатор пользователя — это идентификатор Facebook, который является ключом провайдера.

Мой вопрос: как вы можете запросить таблицу ASPNetUserLogins с помощью ключа поставщика?

Я хочу иметь возможность получить UserID из таблицы ASPNetUserLogin, и у меня есть ProviderKey, поэтому есть уникальные ключи, но, похоже, нет способа получить доступ к таблице ASPNetUsers в новой системе идентификации.


person Steve French    schedule 19.11.2013    source источник


Ответы (1)


Вы хотите позвонить:

    public virtual Task<TUser> FindAsync(UserLoginInfo login)

И создайте UserLoginInfo с помощью providerKey и loginProvider.

person Hao Kung    schedule 19.11.2013
comment
Как ни странно, я пробую этот метод и получаю сообщение об ошибке «Невозможно преобразовать объект типа «System.Data.SqlClient.SqlDataReader» в тип «Glimpse.Ado.AlternateType.GlimpseDbDataReader». даже после того, как я удалю glimpse и перезапущу Visual Studio. - person Steve French; 21.11.2013
comment
UserLoginInfo запечатан, что может вызвать проблемы с динамическими прокси - person Hao Kung; 21.11.2013
comment
Hurm - это было бы в этом - любая идея, как обойти это ограничение? - person Steve French; 21.11.2013
comment
Расширить UserManager и предоставить другой аналогичный метод, который берет две строки и напрямую передает их в хранилище пользователя? - person Hao Kung; 21.11.2013
comment
Я думаю - просто кажется, что должен быть какой-то простой элегантный способ получения информации - хотя, похоже, его нет. - person Steve French; 21.11.2013