Как мне настроить индекс Lucene в Sitecore, который правильно обрабатывает безопасность? - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть несколько разных ролей в Sitecore. И я установил разрешения безопасности для своих элементов контента, чтобы разные роли могли получать доступ только к определенным элементам контента. Похоже, что Lucene будет просто индексировать весь контент. И когда я запрашиваю Lucene, он не обращает никакого внимания на безопасность. Есть ли способ заставить Lucene возвращать только те элементы, к которым у текущего пользователя Extranet есть доступ?

Спасибо, Corey

1 Ответ

3 голосов
/ 08 ноября 2010

Не в моих силах. Но при работе с коллекцией Hits у вас обычно будет цикл, подобный следующему:

for ( int i = 0; i < hits.Length() && i < Context.Current.Settings.MaxSearchResultsToProcess; i++ )
{
    Item item = Index.GetItem( hits.Doc( i ), Context.Current.Database );
    if ( item != null )
    {
        indexResultater.Add( item );
    }
}

И поскольку это выполняется в контексте вашего текущего пользователя, результаты не будут добавлены к вашим результатам, если пользователь не сможет получить к ним доступ.

...