Я думаю, что проблема в том, что даже если вы найдете список пользователей, рабочие процессы не будут вызывать никаких действий, если пользователи не существуют в списке информации пользователя.
Если пользователей не существует в списке сведений о пользователе, то вы не сможете найти их через объектную модель SharePoint, поскольку они не существуют в SharePoint. Вам придется найти их по-другому.
Так в основном, это зависит от того, как аутентификация настроена на вашем SharePoint сервере:
Если вы используете FBA, то пользователи, которые могут проходить проверку подлинности с SharePoint должен существовать в базе данных SQL где-то. Membership.Provider даст вам крючок для вашего провайдера членства FBA (будь то SqlMembershipProvider или что-то еще). Затем вы можете использовать методы, такие как
Membership.Provider.GetUser(username)
, чтобы узнать, существует ли пользователь. Вы также можете прокручивать своих пользователей или находить все существующие имена пользователей, которые вы могли бы отобразить в своем сборщике людей.
Если вы используете проверку подлинности Windows, вам нужно будет найти в своем AD, чтобы найти потенциальных пользователей. Объект DirectoryEntry - это то, что вам нужно. Я полагаю, что только пользователи из определенной группы AD могут получить доступ к SharePoint? Если это так, то изолируйте эту группу с объектом DirectoryEntry, пройдите через пользователей, и у вас будет источник данных для сборщика людей.
Как я уже сказал выше, любой способ даст вам возможных пользователей, но он не заставит рабочий процесс работать, если пользователи не вошли в систему. Рабочие процессы будут работать только с пользователями, которые существуют в пользовательской информации Список.
Когда кто-то выбирает пользователя, которого нет в SharePoint, вам, вероятно, придется создать его с помощью кода. Безопасный способ сделать это с помощью SPWeb.EnsureUser.
Проверяет, является ли принадлежит указанное имя Войти действительному пользователю веб-сайта , и если имя Логин делает уже не существует, добавляет его на веб- site.site.
Так что действительно, чтобы ответить на ваш вопрос, нигде. Вам нужно искать их там, откуда они могут быть.
Фактически я только что открыл этот контроль сегодня. Забавно, как легко пропустить такие вещи, если вы не поймете, что поиск в Google совершенно прав. –