Можно ли установить значение пакета свойств через 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

Другие вопросы по тегам