0

コンテキスト ユーザーが読み取りアクセスではなく書き込みアクセスであるアイテムをクエリしたいと思います。つまり、通常は次のようにします。

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にはアイテムのセキュリティ属性をチェックする機能や属性がないため、これらを個別に処理する必要があると思います。(私の知る限り、Fast Queryもそうではありません)。

于 2012-08-24T00:11:40.310 に答える