Я думаю, что проблема здесь в том, что даже если вы найдете список пользователей, рабочие процессы не будут запускать какие-либо действия, если пользователи не существуют в списке информации о пользователях.
Если пользователи не существуют в списке информации о пользователях, вы не сможете найти их через объектную модель 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.
Так действительно, чтобы ответить на твой вопрос, никуда. Вам нужно искать их, откуда они могут прийти.