为什么某些非空的 AAD 配置文件字段的 graphClient.Me.Request().GetAsync() return 为空值?
Why does graphClient.Me.Request().GetAsync() return null values for some AAD profile fields that are not null?
我正在使用 Graph API 从 UWP 应用访问用户信息。我将 Azure 应用服务与客户端 UWP 应用和 Azure 后端一起使用。
我的 Azure Active Directory 只有我和一个测试用户。我的应用程序中的以下几行 return 我的一些来自 AAD 的信息:
Microsoft.Graph.GraphServiceClient graphClient =
new Microsoft.Graph.GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", result2.AccessToken);
return Task.FromResult(0);
}));
Microsoft.Graph.User user = await graphClient.Me.Request().GetAsync();
但是,当我在调用后检查 "user" 变量的内容时,除 DisplayName、GivenName、ID、JobTitle、AdditionalItems 和 UserPrincipleName 之外,所有字段都列为空。不为空的值是正确的。但是,我还填写了所有街道地址字段,并为我在 AAD 上的个人资料提供了个人资料图片。但是这些也返回空值。谁能告诉我是什么原因造成的? (我检查了随请求一起发送的访问令牌,它似乎确实包含所需的权限。为了确保,我在注册时请求了 Windows Azure AD 和 Microsoft Graph 的所有委托所需权限我在 AAD 中的应用程序。)
谢谢。
Microsoft Graph return 是每个响应中的默认核心属性集。您可以使用 $select
查询参数来获取其他属性。
例如,GET https://graph.microsoft.com/v1.0/me/
不会 return 用户的 streetAddress
字段,但 GET https://graph.microsoft.com/v1.0/me/?$select=streetaddress
return 是它。您可以通过用 $select=id,jobTitle,streetAddress
.
等逗号分隔字段来取回多个属性
对于 .NET SDK,我相信语法是 Request().Select("assignedLicenses").GetAsync()
和 documentation for this is on GitHub.
我正在使用 Graph API 从 UWP 应用访问用户信息。我将 Azure 应用服务与客户端 UWP 应用和 Azure 后端一起使用。
我的 Azure Active Directory 只有我和一个测试用户。我的应用程序中的以下几行 return 我的一些来自 AAD 的信息:
Microsoft.Graph.GraphServiceClient graphClient =
new Microsoft.Graph.GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", result2.AccessToken);
return Task.FromResult(0);
}));
Microsoft.Graph.User user = await graphClient.Me.Request().GetAsync();
但是,当我在调用后检查 "user" 变量的内容时,除 DisplayName、GivenName、ID、JobTitle、AdditionalItems 和 UserPrincipleName 之外,所有字段都列为空。不为空的值是正确的。但是,我还填写了所有街道地址字段,并为我在 AAD 上的个人资料提供了个人资料图片。但是这些也返回空值。谁能告诉我是什么原因造成的? (我检查了随请求一起发送的访问令牌,它似乎确实包含所需的权限。为了确保,我在注册时请求了 Windows Azure AD 和 Microsoft Graph 的所有委托所需权限我在 AAD 中的应用程序。)
谢谢。
Microsoft Graph return 是每个响应中的默认核心属性集。您可以使用 $select
查询参数来获取其他属性。
例如,GET https://graph.microsoft.com/v1.0/me/
不会 return 用户的 streetAddress
字段,但 GET https://graph.microsoft.com/v1.0/me/?$select=streetaddress
return 是它。您可以通过用 $select=id,jobTitle,streetAddress
.
对于 .NET SDK,我相信语法是 Request().Select("assignedLicenses").GetAsync()
和 documentation for this is on GitHub.