如何使用图形 api 更新 azure ad b2c 自定义用户属性

How to update azure ad b2c custom user attribute using graph api

我是 Azure B2C 的新手。我为用户创建了自定义属性 extension_role object.i 想使用图表 api.I 更新此属性,尝试了以下代码

public async Task UpdateUsersRole(string id)
        {
         IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
            extensionInstance.Add("extension_role", "admin");
            var user = new User
            {
          
                AdditionalData = extensionInstance

            };

            await  GraphClient.Users[id]
                .Request()
                .UpdateAsync(user);
        }

这是更新自定义属性的正确方法吗?执行时我也遇到了错误

Code: Request_BadRequestMessage: One or more property values specified are invalid.Inner error

请检查以下代码更改,并验证您尝试更新的用户是否具有自定义属性。

public static async Task UpdateCustomAtrributeUserId(GraphServiceClient graphClient)
{
    Console.Write("Enter user object ID: ");
    string userId = Console.ReadLine();
    string CustomAtrribute = "B2C_Custom_AtrributeName";

    Console.WriteLine($"Looking for user with object ID '{userId}'...");

    try
    {
      //Get User details to Verify the existing values
        var result = await graphClient.Users[userId]
          .Request()
          .Select($"id,givenName,surName,displayName,identities,{CustomAtrribute}")
          .GetAsync();

        Console.WriteLine(result);

        if (result != null)
        {
            //Enter the New custom attribute value
            Console.WriteLine("Enter custom attribute value");
            string updatecustomeattribvalue = Console.ReadLine();
            
            //Fill custom attribute value
            IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
            extensionInstance.Add(CustomAtrribute, updatecustomeattribvalue);
            //Updating the custom attribute 
            var updatedresult  = await graphClient.Users[userId]
                    .Request()
                    .UpdateAsync(new User {
                        AdditionalData = extensionInstance
                    });
           
            Console.WriteLine(JsonConvert.SerializeObject(updatedresult));
        }
    }
    catch (Exception ex)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(ex.Message);
        Console.ResetColor();
    }
}