0

我想查询 Context 用户作为写入访问权限而不是读取访问权限的项目。即,通常我会做这样的事情:

Sitecore.Context.Database.SelectItems("/sitecore/content/somepath/*");

...这将为用户有权读取的所有项目返回一个 Item[] 数组。是否有一种机制可以仅检索用户具有写入权限的项目?还是我将不得不遍历这些项目并单独检查它们?

如何检查上下文用户是否对给定项目具有此权限?

4

2 回答 2

3

如果您希望它“看起来”就像您没有遍历列表一样,您可以在 LINQ 查询中执行安全检查。像这样的东西:

var result = Sitecore.Context.Database.SelectItems("/sitecore/content/somepath/*").Where(x => x.Security.CanWrite(Sitecore.Context.User));
于 2012-08-24T12:54:21.403 回答
1

我认为您可能必须单独处理这些问题,因为Sitecore Query没有任何功能或属性来检查项目的安全属性。(据我所知,快速查询也没有)。

于 2012-08-24T00:11:40.310 回答