Sitecore Items - 以编程方式测试匿名用户是否具有权限

Sitecore Items - Programmatically test if anonymous user has permission

我正在尝试测试项目是否可以被匿名用户查看:

var anon = User.FromName("domain\Anonymous");

if (item.Security.CanRead(anonymousUser))
    return true;

但它总是 returns 正确,即使我知道对于特定项目,他们必须具有特定角色才能查看它,正如我从访问查看器中看到的那样:

负责的爬虫 - 实际上执行 ComputeFieldValue 代码 - 被设计为将此代码包装在 SecurityDisabler 中。这就是为什么无法在计算字段内验证是否可以访问该字段。

Sitecore 确实建议在搜索 (ootb) 期间进行安全检查,但如果您这样做,TotalResults 确实不匹配 - 这很糟糕 ;)

如果您想在索引中获得安全性 - 首先尝试找到一个解决方案来保持项目安全性更新。例如。如果你想在某处打破继承,你的索引怎么知道要更新哪些项目? ...