[英].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.