Можно ли установить значение пакета свойств через CSOM, не имея разрешений арендатора?
Я пытаюсь использовать свое серверное приложение CSOM с контекстом служебной учетной записи администратора семейства веб-сайтов, чтобы программно установить значение контейнера свойств для хранения некоторых настроек для моего внешнего приложения-расширения.
Я пытался сделать это двумя способами:
web.SetPropertyBagValue("name", "value");
ctx.ExecuteQuery();
а также
web.AllProperties["name"] = "value";
web.Update();
ctx.ExecuteQuery();
но в обоих случаях я получаю сообщение об ошибке:
{"Доступ запрещен. У вас нет разрешения на выполнение этого действия или доступ к этому ресурсу."}
Неужели администратор семейства веб-сайтов не может установить набор свойств в SharePoint Online? Я спрашиваю об этом, потому что у меня была аналогичная проблема при попытке удалить сайт, и в этом случае, согласно нескольким источникам в Интернете, эту операцию также мог выполнить только администратор арендатора, но я нашел метод:
ctx.DeleteSiteAsync()
который оказался успешным удалением сайта без разрешений арендатора. Поэтому я надеюсь, что здесь тоже есть решение.
1 ответ
@Мариуш Игнатович
Просто протестируйте свой код на моем современном сайте SPO, он отлично работает здесь:
Затем я включил, как предложил @m1g, он выдаст сообщение «Доступ запрещен. У вас нет разрешения ...».
Connect-SPOService -Url https://[tenant]-admin.sharepoint.com -credential admin@tenant.onmicrosoft.com
Get-SPOSite -Identity https://[tenant].sharepoint.com/sites/comm|select DenyAddAndCustomizePages
### o is disable, 1 is enable
Set-SPOSite -Identity https://[tenant].sharepoint.com/sites/comm -DenyAddAndCustomizePages 1
Так что я думаю, вам нужно отключить
DenyAddAndCustomizePages
во-первых, тогда это должно быть исправлено.
BR