Sitecore 9:当 Publishing.CheckSecurity 设置为 True 时,非管理员成员无法发布项目

Sitecore 9: Non Admin members are unable to publish items when Publishing.CheckSecurity is set to True

当前情况(Sitecore 9) 用户无法将任何项目发布到任何发布目标,甚至不能在网络数据库上发布。当我们在 Sitecore.config.

中将 Publishing.CheckSecurity 设置为 true 时,我们会遇到这个问题

项目没有工作流,用户拥有项目的所有(读、写、删除、创建)访问权限。

我深入研究了 Sitecore.Kernel Dll 并发现了差异

public bool CanPublish(ID itemId, User user, ref string explanation)
{
Assert.ArgumentNotNull(itemId, “itemId”);
Assert.ArgumentNotNull(user, “user”);
Assert.ArgumentNotNull(explanation, “explanation”);
if (!Settings.Publishing.CheckSecurity)
{
return true;
}
if (!this.CanPublishLanguage(itemId, user, ref explanation))
{
return false;
}
Item sourceItem = this.GetSourceItem(itemId);
if (sourceItem == null)
{
return this.CanPublishDeletion(itemId, user, ref explanation);
}
return this.CanPublishUpdate(sourceItem, user, ref explanation);
}

早期 (Sitecore 8.1) 没有“CanPublishLanguage”。我已经提供了所有语言访问权限,但我的项目在发布时仍然被跳过。该函数返回 false。

如果我将此设置设为 false,那么它工作正常。

如果我为此遗漏了更多配置更改,请提出建议。

此问题与 Sitecore 9 相关,已在 Sitecore 9.0 更新 2 中修复。 向 Sitecore 提出了这个问题并得到了解决方案。

报告的问题似乎已在 Sitecore 9.0 Update-2 中修复: https://dev.sitecore.net/Downloads/Sitecore%20Experience%20Platform/90/Sitecore%20Experience%20Platform%2090%20Update2/Release%20Notes

当 Publishing.CheckSecurity 设置为 true 时,非管理员用户无法发布内容项,即使他们拥有所有适当的安全权限 206940

要解决此问题,我们建议您将 Sitecore 解决方案升级到 Sitecore XP 9.0 更新 2(修订版 180604)。

万一不行,可以试试下面的补丁:https://sitecore.box.com/s/swae96e2hhgrbid3keccmvzr4e8kbvr7 要安装补丁,请按照存档内自述文件中的说明进行操作。