Защита внешнего списка путем фильтрации для текущего пользователя - PullRequest
4 голосов
/ 12 мая 2011

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

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

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

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

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

1 Ответ

4 голосов
/ 12 мая 2011

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

...