我正在将GraphServiceClient与.Net Core 2一起使用。我正在尝试使用以下代码向我的用户添加AdditionalData。
var updated = new User()
{
AdditionalData = new Dictionary<string, object>
{
{"OtherEmail", otherEmail},
{"OtherRole", otherRole}
},
};
await _graphClient.Users[user.Id].Request().UpdateAsync(updated);
执行此操作时,出现以下错误
Microsoft.Graph.ServiceException:代码:Request_BadRequest消息:
指定的一个或多个属性值无效。
有人知道我在做什么错吗?
另外,如果有人可以告诉我如何将自己的一些元数据保存给用户,将不胜感激。我也尝试过使用扩展名,但是我遇到了这个问题。
Azure AD GraphServiceClient Extensions not working
最佳答案
所以我使用OpenExtensions解决了这个问题,这也给我带来了很多问题,可以在这里看到。
Azure AD GraphServiceClient Extensions not working
技巧是添加这样的扩展名
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;
希望能对某人有所帮助!