2016-10-25 8 views
1

を持っている場合、私はアイテムが匿名ユーザーが見ることができるかどうかをテストしようとしている:サイトコアアイテム - プログラムのテスト匿名ユーザーが許可

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

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

しかし、それは常に私が特定の項目のためにそれを知っている場合でも、trueを返します、彼らは私がアクセスビューアから見ることができるように、それを表示するために一定の役割を持っている必要があります

enter image description here

+0

アイテムはどこに表示されるべきですか?アイテムはブラウザで表示するページですか?コンテンツツリーのアイテムですか?どのリビジョンのサイトコア8? – Anicho

+0

閲覧するページです。 'Sitecore 81 rev 160302' –

+0

コンテキストを追加するだけで、このコードはインデックスの計算フィールドにあります。ユーザーが許可している結果だけを取得する必要があります。私はSitecoreが 'SearchSecurityOptions.EnableSecurityCheck'メカニズムを持っていることを知っていますが、' TotalSearchResults'プロパティを尊重せず、ページングを中断するので、ちょっと冗談です。 –

答えて

1

を実際にComputeFieldValueを実行-which責任クローラは、このコードをラップするように設計されたコード - SecurityDisabler。そのため、計算フィールド内でフィールドへのアクセスがあるかどうかを検証することは不可能です。

サイトコアは、検索(OOTB)中にセキュリティチェックを行うことをお勧めしますが、あなたがしなければ確かにTotalResultsが一致していないん - 吸い込む;)

をあなたはインデックスでセキュリティを取得しようとする場合 - 最初にしてみてくださいアイテムのセキュリティを更新したままにするソリューションを見つけることができます。例えば。あなたがどこかで継承を破るならば、あなたのインデックスは更新すべきアイテムをどのように知っていますか? ...

+0

ありがとうございます。私はアイテムのアクセスルールを索引付けすることで、必要なものを得る方法を見つけたと思う。 –

関連する問題