【问题标题】:Is it possible to set a property bag value via CSOM without having tenant permissions?是否可以在没有租户权限的情况下通过 CSOM 设置属性包值?
【发布时间】:2020-12-31 11:30:49
【问题描述】:

我正在尝试将我的后端 CSOM 应用与网站集管理员服务帐户的上下文一起使用,以编程方式设置属性包值来存储我的前端扩展应用的一些设置。

我尝试了两种方法:

web.SetPropertyBagValue("name", "value");
ctx.ExecuteQuery();

web.AllProperties["name"] = "value";
web.Update();
ctx.ExecuteQuery();

但在这两种情况下我都会收到错误:

{"访问被拒绝。您无权执行此操作或 访问此资源。"}

网站集管理员真的无法在 SharePoint Online 中设置属性包吗?我问这个是因为我在尝试删除网站时遇到了类似的问题,在这种情况下,根据互联网上的a fewsources,此操作也只能由租户管理员完成,但我找到了一个方法:

ctx.DeleteSiteAsync()

结果证明成功删除了没有租户权限的网站。所以我希望也许这里也有一个解决方案。

【问题讨论】:

  • 这是可行的。我假设您可能使用现代网站?这些默认情况下启用 noscript 并在启用时阻止任何编程访问。但是,您可以关闭 noscript,等到应用,然后更新属性包,然后禁用。我相信这实际上是作为属性“DenyAddAndCustomizePages”公开的,并且确实需要几秒钟才能完全禁用。

标签: sharepoint permissions sharepoint-online csom propertybag


【解决方案1】:

@Mariusz Ignatowicz

只需在我的 SPO 现代网站中测试您的代码,它在这里工作正常:

然后我按照@m1g 的建议启用了DenyAddAndCustomizePages,它会提示“访问被拒绝。您没有权限......”

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

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2014-11-25
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2013-08-22
    相关资源
    最近更新 更多