Программный поиск пользователя в SharePoint - PullRequest
4 голосов
/ 28 июля 2010

Я столкнулся с ситуацией, когда мне нужно иметь возможность искать пользователя по имени его активного каталога.Я пытался найти пользователя в свойствах SPSite.Users, SPSite.AllUsers и SPSite.SiteUsers, но пользователь не обязательно находится ни в одном из этих списков.Для пользователей, которые получают разрешение на доступ к сайту через активную группу каталогов, которой было предоставлено разрешение на доступ к сайту, в списке различных пользователей нет списка пользователей, только запись для активной группы каталогов.Есть ли способ найти пользователя программно в SharePoint без необходимости напрямую запрашивать активный каталог через LDAP?

В идеале я хотел бы найти механизм, который работает как для аутентификации на основе форм, так и для аутентификации AD, но мне нужнонайти механизм, который работает с аутентификацией AD.

1 Ответ

3 голосов
/ 28 июля 2010

Попробуйте SPWeb.EnsureUser :

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

Этот метод работает как с AD, так и с FBA.Если вы используете и то, и другое, вам нужно добавить префикс имени пользователя от провайдера не по умолчанию, например:

SPUser webUser = web.EnsureUser("SecondaryProvider:" + userName);
...