Клиент Graph Net напрямую не поддерживает ваши требования.
Но, основываясь на моем тесте, мы можем попробовать следующее решение:
Используйте следующий код, чтобы получить список с DirectoryRole и затем отфильтровать по DisplayName, а затем проверьте идентификатор шаблона роли (для directoryRole из Me.MemberOf, если DisplayName содержит Администратор, по сути, мы являемся администратором. Если использовать API DirectoryRoles, мы можем перебирать список и проверять идентификатор шаблона роли):
// This will contains the group too, we need to filter it to get the directoryrole
IUserMemberOfCollectionWithReferencesRequest builder = graphClient.Me.MemberOf.Request();
IUserMemberOfCollectionWithReferencesPage page = await builder.GetAsync();
// This is all directoryrole in our tenant, we need to filter by DisplayName contains **Administrator**
IGraphServiceDirectoryRolesCollectionRequest request = graphClient.DirectoryRoles.Request();
IGraphServiceDirectoryRolesCollectionPage directoryRoles = await request.GetAsync();
Результаты Me.MemberOf:
Результаты DirectoryRoles: ![введите описание изображения здесь]( https://i.stack.imgur.com/vN4YV.png )
Если работа по-прежнему не соответствует вашим требованиям, я предлагаю вам отправить запрос функции на uservoice и проблемы с github
Дополнительный ответ: (К сожалению, фильтрация ресурсов каталога в Microsoft Graph, как правило, довольно ограничена. Поэтому вы можете просто использовать фильтр в памяти на стороне клиента или отправить запрос функции сейчас) :
Теоретически мы можем использовать остальные API следующим образом (Указанный фильтр для запроса ссылочного свойства в настоящее время не поддерживается.)
https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:roleTemplateId eq '62e90394-69f5-4237-9190-012177145e10')
И в коде C #, основанном на Graph Client
List<QueryOption> options = new List<QueryOption>
{
new QueryOption("$filter",
"groupTypes/any(a:roleTemplateId eq '62e90394-69f5-4237-9190-012177145e10'")
};
IUserMemberOfCollectionWithReferencesRequest builder = graphClient.Me.MemberOf.Request(options);
IGraphServiceDirectoryRolesCollectionRequest request = graphClient.DirectoryRoles.Request(options);
person
Seiya Su
schedule
07.09.2018