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

标签 azure microsoft-graph-api azure-ad-b2c azure-ad-graph-api azure-ad-b2c-custom-policy

我是 Azure B2C 的新手。我针对用户对象创建了自定义属性 extension_role。我想使用图形 api 更新此属性。我尝试了以下代码

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();
    }
}

关于azure - 如何使用图形 API 更新 azure ad b2c 自定义用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63815710/

相关文章:

c# - 如何使用 Azure Active Directory B2C GraphServiceClient 创建全局管理员用户?

asp.net - 如何在 Windows Azure Web App 上配置错误响应格式

c# - MS图API : Set custom tags (columns) of a DriveItem

excel - 针对个人帐户和组织帐户的 Excel Microsoft Graph API 请求

azure-active-directory - 从静态 HTML 页面调用 MSAL 登录

azure - 使用 Azure AD B2C 自定义身份提供程序 (OpenID Connect) 映射声明

python - 将流数据从 Azure Blob 存储读取到 Databricks 中

asp.net-mvc - 在单个 IIS 服务器上部署使用 Azure AD 进行身份验证的两个应用程序时,身份验证页面不断无限循环

java - TrustManagerFactory - 忽略证书检查

azure - 使用 Graph API 访问共享点站点的私有(private)组内的共享文档文件夹