如何解决如何获得用户的组名是使用Microsoft Graph API的成员?
我想知道用户是AAD成员的组列表。根据组的成员身份,他们可以执行其他功能。为此,我使用了MS Graph API,但仅获得组ID,而不获得组名。 我使用以下两种方式来使用图形API。 第一种使用的方法,
await graphClient.Users[upn].GetMemberGroups(false).Request().PostAsync()
响应:
[ "fee2c45b-915a-4a64-b130-f4eb9e75525e","4fe90ae7-065a-478b-9400-e0a0e1cbd540","e0c3beaf-eeb4-43d8-abc5-94f037a65697" ]
使用的第二种方法
await graphClient.Users[upn].MemberOf.Request().GetAsync();
响应:
[
{
"deletedDateTime": null,"id": "1c4934554-5006-403a-bf4f-bsdfeerwfs6fe6f","oDataType": "#microsoft.graph.group","additionalData": {
"creationOptions": [],"isAssignableToRole": null,"resourceBehaviorOptions": [],"resourceProvisioningOptions": []
}
},{
"deletedDateTime": null,"id": "f8975c2f-7651d-4f3a-1234-4ec3808a0ac2","additionalData": {
"creationOptions": [
[]
],"resourceProvisioningOptions": [
[]
]
}
}
]
我需要的是组名称和组ID。如何有效地将两者融合在一起?还是我可以为此目的尝试其他任何方法?
解决方法
对我来说,以下工作可获取组名:
var page = await graphClient
.Users[userObjectId]
.MemberOf
.Request()
.GetAsync();
var names = new List<string>();
names.AddRange(page
.OfType<Group>()
.Select(x => x.DisplayName)
.Where(name => !string.IsNullOrEmpty(name)));
while (page.NextPageRequest != null)
{
page = await page.NextPageRequest.GetAsync();
names.AddRange(page
.OfType<Group>()
.Select(x => x.DisplayName)
.Where(name => !string.IsNullOrEmpty(name)));
}
return groupNames;
组的响应中应该有一个DisplayName / displayName。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。