Защита внешнего списка с помощью фильтрации для текущего пользователя
Я настроил внешний тип контента со столбцом, который содержит учетные записи Active Directory, чтобы сопоставить каждую запись пользователю. Теперь я хочу, чтобы пользователи видели только те записи в списке, где запись AD-учетной записи совпадает с учетными данными текущего пользователя.
Поэтому я попробовал следующий подход и преуспел в создании пользовательского контекстного фильтра для операций ReadItem/create/update/delete. Тем не менее, для операции ReadList нет никакой опции, у мастера есть другие опции фильтра.
В результате текущий пользователь может видеть все элементы во внешнем списке, но может открывать только те, которые отмечены его учетной записью, поэтому фильтр определенно работает. Однако использование фильтра только для элементов, а не для всего списка, бесполезно (элементы, которые нельзя открыть, могут запутать пользователя, представление списка может в любом случае раскрыть данные и т. Д.).
Я попытался отфильтровать этот список с помощью веб-части "Текущий пользователь", которая дает нам желаемый результат, но сам список, конечно, все еще находится в фоновом режиме и может быть открыт через URL.
Как я могу применить фильтр контекста пользователя, примененный к ReadList? И если это невозможно, где и как вы реализуете такой фильтр?
1 ответ
Экспортируйте модель метаданных BDC из SharePoint Designer и отредактируйте ее вручную, чтобы включить фильтр UserContext. Затем повторно импортируйте модель через приложение-службу BDC в центре администрирования.