在Microsoft.Graph.User对象中有一个名为"AdditionalData“的字段。这似乎包含了许多值,从判断记录是否是增量记录到存储管理器信息。

在这种情况下,它保存关于用户管理器的信息。看起来它可以保存多个记录,所以我想问从这个属性获取数据的最佳方法是什么,以确保获得它可能拥有的所有值。
我也不知道为什么经理信息在AdditionalData属性中而不是manager属性中。
发布于 2022-05-04 16:56:51
是的,您是正确的,AdditionalData可能持有多个记录,您可以将additionalData添加到您的用户,该用户可以根据您的自定义保存任何信息。
您可以使用Openxtension向additionalData添加多个值。
技巧是添加像这样的扩展
extension = new OpenTypeExtension
{
ExtensionName = AzureADExtensions.UserConstants.ExtensionName,
AdditionalData = new Dictionary<string, object>
{
{"OtherEmail", externalUser.Email},
{"OtherRole" , externalUser.Roles.FirstOrDefault()}
}
};
await _graphClient.Users[user.Id].Extensions.Request()
.AddAsync(extension);然后像这样取回它们。
user = await _graphClient
.Users[userId]
.Request()
.GetAsync();
// Note : you should be able to expand this on original request, but fails for me.
var extensions = await _graphClient.Users[user.Id].Extensions.Request().GetAsync();
user.Extensions = extensions;参考:
发布于 2022-05-05 10:06:31
“附加数据”属性仅在执行增量查询时保存管理器信息,如果我们执行常规查询,则必须使用扩展属性来获取管理器。
出于时间的考虑,我们暂时避免了增量查询,但可能会在另一个时间点回到它。
谢谢大家。
https://stackoverflow.com/questions/71956707
复制相似问题