Вопрос

У меня есть инфопат, что наполнитель должен указывать людей. Позже рабочий процесс назначает задачи этим людям. То, что я ищу, - это сборщик людей, подобный тому, что SharePoint имеет для пользовательских полей, но я могу использовать в InfoPath. Я уже разработал форму, чтобы сделать это, где наполнитель может поместить имя или адрес электронной почты, а форма будет перечислены результаты из группы Site.Allusers.

Проблема в том, что если человек, который необходимо добавить в форму, никогда раньше не обращался к этой конкретной коллекции сайта. Их аккаунт не будет перечислена в списке Allusers.

Где в объектной модели я могу искать пользователя, который сможет аутентифицироваться с SharePoint?

Это было полезно?

Решение

Почему бы не просто использовать OTB One в InfoPath и настроить его, чтобы указать на вашу среду SharePoint?

http://www.sharepointassist.com/2009/02/27/adding-a-contact-selectorpeople-picker-to-an-infopath-form/

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

Другие советы

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

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

Таким образом, в основном это зависит от того, как проверка подлинности настроен на вашем сервере SharePoint:

Если вы используете FBA, то пользователи, которые могут аутентифицироваться с помощью SharePoint, должны существовать в базе данных SQL где-то. Членство. Производитель Даст вам крючок на вашем провайдере членов FBA (будь то SQLMembershipProvider или что-то еще). Затем вы можете использовать методы, такие как

Membership.Provider.GetUser(username)

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

Если вы используете аутентификацию Windows, вам придется посмотреть в своем объявлении, чтобы найти потенциальных пользователей. То Directorententry. Объект - это то, что вам нужно. Предлагаю, что только пользователи из определенной группы объявлений могут получить доступ к SharePoint? Если это так, то выделите эту группу с объектом каталогов, цикл через пользователей, и у вас будет источник данных для выбора людей.

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

Когда кто-то выбирает пользователь, который не существует в SharePoint, вам, вероятно, придется создать его через код. Безопасный способ сделать это с SPWEB.ensureUser.

Проверяет, принадлежит ли указанное входное имя для действительного пользователя веб-сайта, и если имя входа уже не существует, добавляет его на веб-сайт.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top