azure-active-directory - AAD 组中的用户数
问题描述
是否有 Microsoft Graph API 来找出 AAD 组中的用户数?目前,这是我如何找到它的代码。想知道是否有更快的方法?
private async Task<int> GetUserIds(string groupId)
{
List<string> userIds = new List<string>();
var usersFromGroup = await _groupMembersService.GetGroupMembersPageByIdAsync(groupId);
usersFromGroup.AdditionalData.TryGetValue("@odata.nextLink", out object nextLink);
var nextPageUrl = (nextLink == null) ? string.Empty : nextLink.ToString();
userIds.AddRange(usersFromGroup.OfType<Microsoft.Graph.User>().Select(x => x.Id));
while (!string.IsNullOrEmpty(nextPageUrl))
{
usersFromGroup = await _groupMembersService.GetGroupMembersNextPageAsnyc(usersFromGroup, nextPageUrl);
usersFromGroup.AdditionalData.TryGetValue("@odata.nextLink", out object nextLink2);
nextPageUrl = (nextLink2 == null) ? string.Empty : nextLink2.ToString();
userIds.AddRange(usersFromGroup.OfType<Microsoft.Graph.User>().Select(x => x.Id));
}
return userIds.Count;
}
}
public async Task<IGroupTransitiveMembersCollectionWithReferencesPage>GetGroupMembersPageByIdAsync(string groupId)
{
return await this.graphServiceClient
.Groups[groupId]
.TransitiveMembers
.Request()
.Top(this.MaxResultCount)
.WithMaxRetry(this.MaxRetry)
.GetAsync();
}
public async Task<IGroupTransitiveMembersCollectionWithReferencesPage> GetGroupMembersNextPageAsnyc(
IGroupTransitiveMembersCollectionWithReferencesPage groupMembersRef,
string nextPageUrl)
{
groupMembersRef.InitializeNextPageRequest(this.graphServiceClient, nextPageUrl);
return await groupMembersRef
.NextPageRequest
.GetAsync();
}
解决方案
您可以使用此图形 API 来获取任何组的计数。 https://graph.microsoft.com/v1.0/groups/{group-object-id}/members/$count
确保为此添加ConsistencyLevel = Eventual
请求标头。在 Graph Explorer 中为您测试:
推荐阅读
- sql - 色调未捕获空值
- javascript - Firebase 管理员无法读取未定义的属性“证书”
- kotlin - Android SettingsActivity 以编程方式填充 ListPreference
- kubernetes - 如何查看部署的崩溃 pod 日志
- ubuntu - libnvidia-compute 更新后 NVML 驱动程序/库不匹配
- angular - 如何解决“包“@angular-devkit/build-angular”没有定义构建器”错误
- graphql - 如何使用 Prisma 创建 4 级嵌套关系
- css - 在 React 中有条件地应用类
- excel - 关闭用户窗体也会关闭我的工作簿
- regex - 正则表达式:匹配数字字符串直至密码排列