是否可以在 C# 中以编程方式设置 SharePoint Online 网站的锁定状态?

问题描述 投票:0回答:1

我想找到一种在 C# 中以编程方式设置 SharePoint Online 网站的 LockState 属性的方法 - 根据需要设置为只读或解锁。

我尝试使用 PnP 框架,如下所示:

using (var cc = new AuthenticationManager()
    .GetACSAppOnlyContext(siteUrl, clientId, clientSecret))
{
    var tenant = new Tenant(cc);
    var siteProperties = tenant.GetSitePropertiesByUrl(siteUrl, true);
    tenant.Context.Load(siteProperties);
    await tenant.Context.ExecuteQueryAsync();

    siteProperties.LockState = readOnly ? "ReadOnly" : "Unlock";

    siteProperties.Update();
    await tenant.Context.ExecuteQueryAsync();
}

这里的 siteUrl 就像 https://-admin.sharepoint.com/sites/{site key}

当我运行此命令时,尝试加载站点属性时收到“令牌请求失败”错误。

这是由于此处用于身份验证的应用程序注册的权限所致吗?需要设置哪些权限才能允许通过租户管理更新 SharePoint 网站上的 LockState?

否则,是否可以通过 Graph API / GraphServiceClient 而不是使用 PnP 框架来完成此操作?

任何帮助或正确方向的观点将不胜感激。谢谢!

c# sharepoint microsoft-graph-api sharepoint-online pnp-framework
1个回答
0
投票

首先不要仅使用 ACS 应用程序上下文,它已退役(但不是生命周期结束!)。

这是由于应用程序注册时授予的应用程序权限错误而导致的权限问题。您正在向租户级别提供应用程序访问权限,因此应用程序应在管理中心 appregnew.aspx 页面中注册。 PFB 许可 xml 检查表

SharePoint ACS APP 权限检查表

© www.soinside.com 2019 - 2024. All rights reserved.