Отключенные учетные записи и PeoplePicker

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

Стандартное поведение

Для начала посмотрим как это работает в SharePoint 2010 без нашего вмешательства. Для этого создадим список на портале и добавим туда поле для выбора пользователя: Поля списка DisabledUsersTestList Также нам понадобится учетная запись в домене.

Создадим новую запись в списке. Здесь ничего нового, просто элемент из контрольной группы. Поля списка DisabledUsersTestList

Теперь заблокируем учетную запись и создадим новый элемент в нашем списке. В поведении SharePoint ничего не изменилось. SharePoint плевать отключена учетная запись или нет. Теперь надо сделать так, чтобы такой сценарий был не возможен в нашей системе

Фильтр для PeoplePicker

Фильтр для выбора пользователей накладывается с помощью свойства stsadm Peoplepicker-searchadcustomfilter. Синтаксис (из technet):

stsadm -o setproperty

   -propertyname peoplepicker-searchadcustomfilter

   -propertyvalue <строка пользовтельского запроса>

   [-url] <URL-адрес>

Для операции getproperty используется следующий синтаксис:

stsadm -o getproperty

   -propertyname peoplepicker-searchadcustomfilter

   [-url] <URL-адрес>

-propertyvalue здесь является обычный LDAP-фильтр. Нас интересует фильтрация по признаку Disabled учетной записи. В LDAP это выглядит вот так:

(!userAccountControl:1.2.840.113556.1.4.803:=2))

Для начала проверим, что никаких фильтров нет и быть не может. Для этого исполним следующую команду:

stsadm -o getproperty -propertyname peoplepicker-searchadcustomfilter -url http://[server]

В моем случае я получил ответ о том, что нет такого свойство:

<Property Exist="No" />

Теперь зададим это свойство. Опять же в моем случае команда выглядит вот так:

stsadm -o setproperty -propertyname peoplepicker-searchadcustomfilter -url http://[server] -propertyvalue "(!userAccountControl:1.2.840.113556.1.4.803:=2))"

Вот теперь выбрать пользователей, учетная запись которых отключена нельзя. Здесь есть один нюанс: Учетную запись можно будет выбрать, если пользователь есть в списке пользователей узла. Для проверки работы фильтра удалим пользователя home\firedemployee из списка пользователей. В очередной раз попробуем выбрать нашего пользователя и увидим примерно следующее: Поля списка DisabledUsersTestList

Теперь отключенные учетные записи неприменимы на нашем портале. Справедливость восстановлена.

Виталий Жуков

Виталий Жуков

SharePoint архитектор, разработчик, тренер, Microsoft MVP (Office Development). Более 15 лет опыта работы с SharePoint, Dynamics CRM, Office 365, и другими продуктами и сервисами Microsoft.

Смотрите также

SharePoint 2007. Проверка на наличие элемента в списке

SharePoint 2007. Проверка на наличие элемента в списке

SharePoint 2007. База данных содержимого

SharePoint 2007. База данных содержимого

SharePoint 2007. Свой контрол на панели свойств веб-парта

SharePoint 2007. Свой контрол на панели свойств веб-парта

SharePoint 2007. Максимальное/минимальное значение поля в списке

SharePoint 2007. Максимальное/минимальное значение поля в списке

SharePoint 2007. Получение данных из нескольких списков и узлов

SharePoint 2007. Получение данных из нескольких списков и узлов