我试图测试匿名用户是否可以查看项目:
var anon = User.FromName("domain\\Anonymous");
if (item.Security.CanRead(anonymousUser))
return true;
但它总是返回true,即使我知道对于特定项目,它们必须具有一定的角色来查看它,正如我从访问查看器中看到的那样:
答案 0 :(得分:1)
负责的抓取工具 - 它实际上执行ComputeFieldValue代码 - 的设计方式是将此代码包装在 SecurityDisabler 中。这就是为什么在计算字段内无法验证是否可以访问该字段的原因。
Sitecore确实建议在搜索期间进行安全检查(ootb),但实际上TotalResults不匹配 - 这很糟糕;)
如果您尝试在索引中获得安全性 - 首先尝试找到一个解决方案,以保持项目安全性的更新。例如。如果你在某个地方破坏继承,你的索引将如何知道要更新的项目? ......