簡體   English   中英

.Net Core Identity Framework 通過聲明獲取用戶

[英].Net Core Identity Framework Get Users By Claim

在我們的 .NET Core Web API 中,我們已經配置了基於聲明的授權並且它完美地工作。 我們創建了角色聲明並將角色分配給用戶。 我們不使用用戶聲明。

現在我有一個要求讓用戶有一個特定的要求。 在 UserManager 中有一個方法 GetUsersByClaimAsync(Claim),它似乎只考慮用戶聲明。 不是角色聲明。 所以在我的情況下,它不可用。

所以我想通過聲明獲取角色,然后通過角色獲取用戶(效率不高,因為它必須進行多次數據庫調用才能分別獲取每個角色的用戶)。 但即使這樣做,也沒有直接的方法可以通過 UserManager 或 RoleManager 中的聲明來獲取角色。

所以對我來說,除了自定義查詢之外,似乎沒有干凈的方法可以實現這一點。

我不確定我在這里遺漏了什么。 有沒有人使用更好的方法實現了這一目標?

謝謝

現在我有一個要求讓用戶有一個特定的要求。 在 UserManager 中有一個方法 GetUsersByClaimAsync(Claim),它似乎只考慮用戶聲明。 不是角色聲明。 所以在我的情況下,它不可用。

我想你可以試試UserManager<TUser>.GetUsersInRoleAsync(roleName) api:

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

順便說一句,要使用上述api,您需要通過以下方式啟用Role相關服務:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM