Microsoft Graph
一种 Microsoft 可编程性模型,用于公开 REST API 和客户端库以访问 Microsoft 365 服务上的数据。
43 个问题
你好
我在尝试将一个用户作为经理分配给另一个用户时遇到问题。
这是我的解决方案:
private async Task<GraphResponse> UpdateUserWithManagerAsync(GraphServiceClient client, AdUser user, AdUser manager)
{
user.Id = 0e2f61df-780a-42b1-8f53-9e32da2a4dba;
manager.Id = 2d0b68a9-3e6d-47ac-951c-eb7b985ee9a0;
return await client.Users[user.Id].Manager.Reference.Request().PutResponseAsync(manager.Id);
}
该请求返回 204 - 无内容,但我看不到用户分配了经理。
Note:此问题总结整理于: Microsoft Graph - Not able to assign manager to a user
请参考我的代码片段,我在本地测试没有问题,它可以为我的用户分配管理器。
using Azure.Identity;
using Microsoft.Graph;
var scopes = new[] { "https://graph.microsoft.com/.default" };
// Multi-tenant apps can use "common",
// single-tenant apps must use the tenant ID from the Azure portal
var tenantId = "tenant id";
// Values from app registration
var clientId = "client id";
var clientSecret = "client secret";
// using Azure.Identity;
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
// https://learn.microsoft.com/dotnet/api/azure.identity.clientsecretcredential
var clientSecretCredential = new ClientSecretCredential(
tenantId, clientId, clientSecret, options);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var userId = "user id";
var managerId = "manager id";
await graphClient.Users[userId].Manager.Reference
.Request()
.PutAsync(managerId);
顺便说一句,不要尝试为您的用户分配多个经理,否则它会覆盖您之前分配的经理。 如果回复有帮助,请单击“接受答案”并投赞成票。
注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。