You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph获取服务主体组成员的ID与DisplayName?

解决方法

Microsoft Graph API默认仅返回资源的核心属性(比如Id),要获取DisplayName这类额外属性,必须显式指定要获取的字段。你只需在请求链中添加Select()方法,指定需要的属性即可,修改后的代码如下:

var graphServiceClient = new Microsoft.Graph.GraphServiceClient(new Microsoft.Graph.DelegateAuthenticationProvider(async (requestMessage) =>
{
     var authResult = await _confidentialClientApp.AcquireTokenForClient(new string[] { "https://graph.microsoft.com/.default" }).ExecuteAsync();
     requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResult.AccessToken);
}));

// 显式指定要返回的属性
var groupMembership = await graphServiceClient.ServicePrincipals[userData.UniqueId].MemberOf
    .Request()
    .Select("id,displayName")
    .GetAsync();

补充说明

  • MemberOf返回的结果可能包含组或目录角色,这类资源均支持displayName属性,直接指定即可生效。
  • 确保你的服务主体已配置并获得足够的应用权限(如Directory.Read.All或Application.Read.All),且已完成管理员同意授权。

内容的提问来源于stack exchange,提问作者johnstaveley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:12:43