Информация о пользователе SharePoint Список сведений о пользователе и тип столбца People - PullRequest
3 голосов
/ 15 февраля 2011

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

http://mysitecollection.com/_vti_bin/usergroup.asmx

Использование метода GetAllUserCollectionFromWeb для возврата всех пользователей для семейства сайтов.

XML ниже является примером того, что возвращается.

<Users>
    <User 
        ID="108" 
        Sid="S-1-5-21-1650336054-1974872081-316617838-5403" 
        Name="Ian Curtis" 
        LoginName="JOY\division" 
        Email="ian.curtis@joydivision.com" 
        Notes="" 
        IsSiteAdmin="False" 
        IsDomainGroup="False" />
</Users>

У меня вопрос такой:

Я получаю элемент списка из веб-службы Lists, и одним из полей является столбец Person. Информация хранится в формате Id; # Имя

В некоторых случаях идентификатор из этого поля не существует у пользователей, возвращаемых для этого семейства сайтов, так откуда этот идентификатор? Это из магазина профилей пользователей?

Я также заметил, что идентификатор пользователя, возвращенного из веб-службы UserGroup, различен для разных семейств сайтов одного и того же пользователя (т. Е. Один и тот же логин).

Если бы была запущена синхронизация профиля пользователя, они были бы такими же?

1 Ответ

2 голосов
/ 15 февраля 2011

В некоторых случаях идентификатор из этого поля не существует у пользователей, возвращаемых для этого семейства сайтов, так откуда этот идентификатор?Это из хранилища профилей пользователей?

У меня такое было, когда пользователь удалялся из AD или когда вы импортировали контент на сайт или ферму, где этого пользователя больше не существует.Я предполагаю, что ценность человека недействительна.Помните, что поле человека - это просто поле поиска в списке информации о пользователе.Чтобы вернуть пользователя (если он существует), используйте метод EnsureUser, но он получит новый идентификатор, поэтому вам придется это исправить.

Я также заметил, что идентификатор дляпользователь, возвращенный из веб-службы UserGroup, отличается для разных семейств сайтов для одного и того же пользователя (т. е. для одного и того же имени входа).Если выполняется синхронизация профиля пользователя, они будут одинаковыми?

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

...