c# - Azure AD GraphServiceClient 无法针对用户设置 AdditionalData

标签 c# azure-active-directory azure-ad-graph-api

我在 .Net Core 2 中使用 GraphServiceClient。我正在尝试使用以下代码向我的用户添加 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 : Code: Request_BadRequest Message: One or more property values specified are invalid.

有谁知道我做错了什么吗?

此外,如果有人可以告诉我如何只针对用户保存我自己的一些元数据,我们将不胜感激。我也尝试过使用扩展程序,但我遇到了这个问题。

Azure AD GraphServiceClient Extensions not working

最佳答案

要将属性添加到 AdditionalData 字段,您必须在 Azure AD B2C > 用户属性(在 Azure 门户中)中定义该属性。例如,如果您创建一个 Boolean 属性 Dummy,这将创建字段 extension_{b2c-extensions-app-id}_Dummy 其中 {b2c-extensions-app-id} 是自动生成的 b2c-extensions-appApplication ID,可通过导航到 Azure AD 查看B2C > 应用注册(预览版)> b2c-extensions-app 从 ID 中删除破折号 (-)!

这将允许您执行以下操作:

var updated = new User()
    {
        AdditionalData = new Dictionary<string, object>
        {
            {"extension_0000000000000000000000000000_Dummy", false}
        },
    };

await _graphClient.Users[user.Id].Request().UpdateAsync(updated);

关于c# - Azure AD GraphServiceClient 无法针对用户设置 AdditionalData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53671020/

相关文章:

c# - 用于在平面文件中对字段进行分组和结构化数据的设计模式

azure-active-directory - Microsoft Azure AD图形API : How do I retrieve a user's email address?

oauth - Active Directory 身份验证库编程 SSO

c# - 如何使用 C# 隐藏 OpenXML 电子表格中的列?

c# - 如何获取特定商店证书的CN?

c# - MSAL.net 提示=select_account/forcelogin

python - Azure Python SDK - 与 Azure AD 交互

使用 MFA 登录的 Azure SQL 数据库可从 Azure ADF 连接

azure - 获取增量用户(日期之间创建的用户)- Office 365 图形 API

c# - 使用图像而不是平铺填充纹理画笔