C # Azure AD Graph получают всех членов группы, где более 20 - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь выбрать всех пользователей из определенной группы из Azure AD.Там в настоящее время 480 пользователей.Когда я получаю их, я получаю только 20, я предполагаю, что это настройка по умолчанию?

var users = await _gsc.Groups["GROUP_ID"].Request().Expand("members").GetAsync();

Как я могу получить их все?

РЕДАКТИРОВАТЬ:

Кажется, если я удаляю .Expand ("members") и использую .Members.Request (). GetAsync () есть опция NextPageResult для результата ... I 'попробую.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Да, поскольку Mohit_Garg упомянул, что максимальное количество возвращаемых объектов равно 20. Для получения дополнительной информации см. Поддерживаемые запросы, фильтры и параметры подкачки |Концепции API Graph .

К выражениям $ expand применяются следующие ограничения:

  • Максимальное количество возвращаемых объектов для запроса равно 20.

Кажется, если я удаляю .Expand ("members") и использую .Members.Request (). GetAsync (), есть опция NextPageResult для результата ... I 'попробую.

Да, вы правы.мы могли бы использовать NextPageRequest , чтобы получить все записи.И номер страницы составляет 100.

Ниже приведен демонстрационный код.

IGroupMembersCollectionWithReferencesPage users = _gsc.Groups["GROUP_ID"].Members.Request().GetAsync().Result;
do
{

   Console.WriteLine("number:" + users.Count);
   foreach (var usr in users)
   {
       Console.WriteLine("user: {0}", usr.Id);
   }
} 
while(users.NextPageRequest != null && (users = users.NextPageRequest.GetAsync().Result).Count > 0);
0 голосов
/ 25 сентября 2018

Да, вы правы.Это ограничение в параметре $ expand.

Если вы хотите, чтобы все группы были получены, извлеките атрибут members и следуйте за oData.NextLink, если он присутствует, чтобы просмотреть результаты.Есть несколько групповых функций, описанных по следующей ссылке: https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/groups-operations

Существуют функции, которые также могут использоваться для групповой транзитивности, просто следуйте навигационным ссылкам, обычно расположенным справа от вышеуказанной ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...