У вас здесь что-то не так.
Это действие PUT
, поэтому вы должны использовать PutAsync()
вместо UpdateAsync()
(то есть POST
).
Вы обновляете user.Id
и , назначая его менеджера как user.Id
.Другими словами, вы говорите Graph, что менеджер этого пользователя является самим пользователем (что, очевидно, не так).
Ваш код должен выглядеть примерно так:
// Create your client
GraphServiceClient graphClient =
new GraphServiceClient("https://graph.microsoft.com/v1.0",
new DelegateAuthenticationProvider(async(requestMessage) =>
{
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("bearer", await GetTokenAsync(iclientApp));
})
);
// Get your list of users
string filter = String.Format("startswith(surname,'{0}')", "ADTest");
var users = await graphClient.Users
.Request()
.Filter(filter)
.GetAsync();
// Grab the first user returned to use as the manager
var manager = users[0];
// Assign this manager to the user currently signed in
await graphClient.Me.Manager.Reference.Request().PutAsync(manager.Id);
Пример этого можно найти в модульном тесте SDK UsersTests .