У меня есть функция Azure v3, и я хочу обновить свойства профиля пользователя Sharepoint с помощью CSOM и .NET standard 2.0, используя учетные данные глобальной учетной записи администратора. Чтение работает.
var site = new Uri("https://domain-admin.sharepoint.com");
using (var authenticationManager = new AuthenticationManager())
using (var context = authenticationManager.GetContext(site, user, password))
{
var peopleManager = new PeopleManager(context);
var personProperties = peopleManager.GetPropertiesFor(accountName);
context.Load(personProperties, p => p.AccountName, p => p.UserProfileProperties);
await context.ExecuteQueryAsync();
Console.WriteLine(personProperties.UserProfileProperties["FirstName"]); //works
peopleManager.SetSingleValueProfileProperty(personProperties.AccountName, "FirstName", "CSOMvalue");
await context.ExecuteQueryAsync(); //error, access denied
}
Точное сообщение об ошибке: System.Private.CoreLib: исключение при выполнении функции: FunctionName. Microsoft.SharePoint.Client.Runtime: доступ запрещен. У вас нет разрешения на выполнение этого действия или доступ к этому ресурсу.
Класс AuthenticationManager взят из документов MS из здесь Я использую пакет Nuget Microsoft.SharePointOnline.CSOM v16.1.20518.12000.
Я сделал веб-приложение .NET Framework 4.7.2, и оно работало с использованием SharePointOnlineCredentials. Но я хочу знать, как заставить его работать в .NET Standard 2.0.