我如何使用UserManager通过Id,姓名,电子邮件或其他搜索条件获得一个用户(不是当前登录的用户)?

问题描述 投票:2回答:2

这应该是世界上最简单的事情,但我找不到任何相关信息。

作为一个临时的解决方案,我采用了这个办法。

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

但我最初的设想是这样的:

await ApplicationUser user = userManager.GetUserAsync(email);

我已经有机会进入 userManager 在我的控制器中。

c# asp.net-core-identity
2个回答
3
投票
ApplicationUser firstUser = await userManager.FindByEmailAsync(email)
ApplicationUser secondUser = await userManager.FindByIdAsync(id)
ApplicationUser thirdUser= await userManager.FindByNameAsync(name)

enter image description here你可以阅读完整的文章,并获得关于所有的信息。userManager 方法 此处


1
投票

您可以使用 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);
© www.soinside.com 2019 - 2024. All rights reserved.