Microsoft图列出组的成员



我现在试图列出所有成员与GraphApi的AAD组。问题是响应是在包含70个用户的页面中接收的,即使在文档中指定每页为100个用户。问题是如何获得一个组的所有用户?我试过了:

var users = await _graphClient.Groups[id].Members.Request().GetAsync();
while (users.Count > 0)
{
members.AddRange(users.OfType<Microsoft.Graph.User>());
if (users.NextPageRequest != null)
{
users = await users.NextPageRequest
.GetAsync();
}
else
{
break;
}
}

但是我认为它可能会有相当糟糕的性能,因为每次求值时,我们必须在返回任何内容之前枚举整个结果集。我无法想象当有5000个用户时,它的性能会如何?它将需要大约70个请求,并且响应时间将非常长。有人知道如何在一个请求中返回所有用户或跳过用户计数吗?当返回用户列表

时,服务现在支持Skip方法。

根据设计,在这个端点上没有办法一次获取>100

根据您的场景,有一些选项:

  • List用于UX组件:那么我将实现相同的分页/过滤器限制,这个端点是给定的。
  • List用于处理所有成员:然后我会创建一个异步架构来处理这个命令。比如队列和函数。(请查看可以展开的耐用功能。)提供命令的状态。这样用户就可以监控命令的执行进度。在做其他事情的时候。

相关内容

最新更新