Защита внешнего списка путем фильтрации по текущему пользователю

#sharepoint-2010 #bcs

#sharepoint-2010 #bcs

Вопрос:

Я настроил внешний тип контента со столбцом, который содержит учетные записи Active Directory, чтобы сопоставить каждую запись пользователю. Теперь я хочу, чтобы пользователи видели в списке только те записи, запись учетной записи AD соответствует учетным данным текущего пользователя.

Итак, я попробовал следующий подход, и мне удалось создать пользовательский контекстный фильтр для операций чтения / создания / обновления / удаления. Однако в операции ReadList для этого нет опции, у мастера есть другие параметры фильтрации.

В результате текущий пользователь может видеть все элементы во внешнем списке, но может открывать только те, которые помечены его учетной записью, поэтому фильтр определенно работает. Однако использование фильтра только для элементов, а не для всего списка, бесполезно (элементы, которые нельзя открыть, приведут пользователя в замешательство, просмотр списка в любом случае может привести к отображению данных и т.д.).

Я попытался отфильтровать этот список с помощью веб-страницы текущего пользователя, что дает нам желаемый результат, но сам список, конечно, все еще находится в фоновом режиме и может быть открыт через URL.

Как я могу применить пользовательский контекстный фильтр к ReadList? И если это невозможно, где и как вы реализуете такой фильтр?

Ответ №1:

Экспортируйте модель метаданных BDC из SharePoint Designer и отредактируйте ее вручную, чтобы включить фильтр UserContext. Затем повторно импортируйте модель через приложение-службу BDC в центре администрирования.

Комментарии:

1. Отлично!!!!!! это сработало! Я потратил часы, пытаясь найти решение! Спасибо!!