gpt4 book ai didi

c# - .Net Core 身份框架通过声明获取用户

转载 作者:行者123 更新时间:2023-12-02 04:10:35 25 4
gpt4 key购买 nike

在我们的 .NET Core Web API 中,我们配置了基于声明的授权,并且它运行良好。我们创建了角色声明并将角色分配给用户。我们不使用用户声明。

现在我需要让用户拥有特定的声明。在UserManager中有一个方法GetUsersByClaimAsync(Claim),它似乎只考虑用户声明。不是角色声明。所以就我而言,它不可用。

因此,我正在考虑按声明获取角色,然后按角色获取用户(效率不是很高,因为它必须进行多次数据库调用才能分别获取每个角色的用户)。但即便如此,也没有直接的方法可以通过 UserManager 或 RoleManager 中的声明获取角色。

所以对我来说,除了自定义查询之外,似乎没有干净的方法可以实现这一点。

我不确定我在这里遗漏了什么。有人使用更好的方法实现了这一点吗?

谢谢

最佳答案

Now I have a requirement to get users having a specific claim. In UserManager there is a method GetUsersByClaimAsync(Claim), which seems only considering user-claims. Not role claims. So in my case, it is not usable.

我想你可以尝试 UserManager<TUser>.GetUsersInRoleAsync(roleName) API:

var users = await _userManager.GetUsersInRoleAsync("Role1");

顺便说一句,要使用上述API,您需要启用Role相关服务:

AddDefaultIdentity<IdentityUser>(options => { /*...*/ })    .AddRoles<IdentityRole>()    .AddEntityFrameworkStores<AppIdentityDbContext>();

关于c# - .Net Core 身份框架通过声明获取用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59577633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com