在SPD中创建页面布局后,如果想要编辑属性提示我们没有权限访问,虽然是创建成功了,但是还是不可以使用的。
原因是因为SharePoint默认开启了禁用自定义页面(DenyAddAndCustomizePages),那么我们就要想办法开启它。
网上有一个办法是在管理中心开启(/_layouts/15/online/TenantSettings.aspx)Custom Script,但是管理中心一般需要很大的权限才能访问,一般的网站管理员是没有权限控制的,而且管理中心开启是全局开启。
我们可以使用脚本单独为指定的网站集开启,直接C#代码,我的PowerShell脚本技术太烂,原理一样。
var siteName = "Qiumc";
string _tenantName = "*******";
using (var clientContext = new OfficeDevPnP.Core.AuthenticationManager().GetWebLoginClientContext("https://" + _tenantName + ".sharepoint.com/sites/"+ siteName))
{
OfficeDevPnP.Core.AuthenticationManager authAdmin = new OfficeDevPnP.Core.AuthenticationManager();
ClientContext adminContext = authAdmin.GetWebLoginClientContext("https://" + _tenantName + "-admin.sharepoint.com/", null, false);
var tenant = new Tenant(adminContext);
tenant.Context.Load(tenant);
tenant.Context.ExecuteQuery();
var siteProperties = tenant.GetSitePropertiesByUrl("https://" + _tenantName + ".sharepoint.com/sites/" + siteName, true);
tenant.Context.Load(siteProperties);
tenant.Context.ExecuteQuery();
siteProperties.DenyAddAndCustomizePages = DenyAddAndCustomizePagesStatus.Disabled;
var operation = siteProperties.Update();
tenant.Context.Load(operation, op => op.IsComplete, op => op.PollingInterval);
tenant.Context.ExecuteQuery();
}
执行之后就可以在SharePoint Online站点创建页面布局,从而使用页面布局创建自定义的页面了。