Как я могу получить пользователя (а не зарегистрированного пользователя) по идентификатору, имени, электронной почте или другим критериям поиска, используя UserManager? - PullRequest
2 голосов
/ 26 апреля 2020

Это должно быть самым простым делом в мире, но я не могу найти информацию об этом.

В качестве временного решения я прибегнул к этому:

ApplicationUser user = await db.Users.Where(u => u.Email == email).FirstOrDefaultAsync();

Но то, что я первоначально предполагал, я мог сделать примерно так:

await ApplicationUser user = userManager.GetUserAsync(email);

У меня уже есть доступ к userManager в моем контроллере.

Ответы [ 2 ]

3 голосов
/ 26 апреля 2020
ApplicationUser firstUser = await userManager.FindByEmailAsync(email)
ApplicationUser secondUser = await userManager.FindByIdAsync(id)
ApplicationUser thirdUser= await userManager.FindByNameAsync(name)

enter image description here Вы можете прочитать статью полностью и получить информацию обо всех userManager методах здесь

1 голос
/ 26 апреля 2020

Вы можете использовать FindBy...() методы для поиска пользователей по параметрам.

FindByEmailAsync() получает пользователя, если таковой имеется, связанный с нормализованным значением указанного адреса электронной почты.

FindByEmailAsync() находит и возвращает пользователя, если таковой имеется, который имеет указанный userId.

FindByLoginAsync(), получает пользователя, связанного с с указанным внешним провайдером входа и ключом провайдера входа.

FindByNameAsync() находит и возвращает пользователя, если таковой имеется, с указанным именем пользователя.

var user = await userManager.FindByEmailAsync(email);
var user2 = await userManager.FindByIdAsync(id);

var loginProvider = "Github";
var providerKey = "Stian";
var user3 = await userManager.FindByLoginAsync(loginProvider, providerKey);

var user4 = await userManager.FindByNameAsync(userName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...