【问题标题】:Count of users in AAD groupAAD 组中的用户数
【发布时间】:2021-06-23 21:34:56
【问题描述】:

是否有 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();
        }

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api microsoft-graph-groups


    【解决方案1】:

    您可以使用此图形 API 来获取任何组的计数。 https://graph.microsoft.com/v1.0/groups/{group-object-id}/members/$count

    确保为此在请求标头中添加ConsistencyLevel = Eventual。 为您在 Graph Explorer 中进行了测试:

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多