要按照UPN(用户主体名称)更新多个用户的扩展属性,你可以使用Microsoft Graph API。以下是一个使用C#的示例代码:
using Microsoft.Graph;
using System;
using System.Collections.Generic;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace UpdateUserExtensionProperties
{
class Program
{
static async Task Main(string[] args)
{
// 配置应用程序凭据
string clientId = "YOUR_CLIENT_ID";
string clientSecret = "YOUR_CLIENT_SECRET";
string tenantId = "YOUR_TENANT_ID";
string authority = $"https://login.microsoftonline.com/{tenantId}";
// 使用应用程序凭据进行身份验证
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority(new Uri(authority))
.Build();
List scopes = new List
{
"https://graph.microsoft.com/.default"
};
AuthenticationResult authResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();
string accessToken = authResult.AccessToken;
// 初始化GraphServiceClient
GraphServiceClient graphClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
return Task.CompletedTask;
}));
// 构建更新请求
List users = new List
{
new User
{
Id = "USER_ID1",
AdditionalData = new Dictionary
{
{"extension_PROPERTY_NAME", "PROPERTY_VALUE1"}
}
},
new User
{
Id = "USER_ID2",
AdditionalData = new Dictionary
{
{"extension_PROPERTY_NAME", "PROPERTY_VALUE2"}
}
}
};
try
{
// 更新用户扩展属性
await graphClient.Users.Request().UpdateAsync(users);
Console.WriteLine("用户扩展属性已成功更新。");
}
catch (Exception ex)
{
Console.WriteLine($"更新用户扩展属性时出错:{ex.Message}");
}
}
}
}
请确保将以下值替换为你自己的应用程序凭据和相关信息:
YOUR_CLIENT_ID
:你的应用程序客户端IDYOUR_CLIENT_SECRET
:你的应用程序客户端密钥YOUR_TENANT_ID
:你的租户IDextension_PROPERTY_NAME
:要更新的扩展属性的名称PROPERTY_VALUE1
和PROPERTY_VALUE2
:要为每个用户设置的属性值USER_ID1
和USER_ID2
:要更新其扩展属性的用户的ID这段代码首先通过应用程序凭据进行身份验证,然后使用GraphServiceClient初始化一个Graph API客户端。然后,它构建了一个包含要更新的用户和他们的扩展属性的列表。最后,它使用UpdateAsync
方法来更新多个用户的扩展属性。