Работа с профилями пользователей в SharePoint
Узнайте о распространенных задачах программирования для работы с профилями пользователей в SharePoint.
Интерфейсы API для работы с профилями пользователей в SharePoint
Профили пользователей и их свойства предоставляют сведения о пользователях SharePoint. SharePoint предоставляет следующие API для программной работы с профилями пользователей:
Клиентские объектные модели для управляемого кода
Клиентская объектная модель .NET
Клиентская объектная модель Silverlight
Клиентская объектная модель для мобильных устройств.
Объектная модель JavaScript
Служба передачи репрезентативного состояния (REST).
Объектная модель сервера
Согласно передовой практике в разработке SharePoint, используйте клиентские интерфейсы API, когда это возможно. Клиентские интерфейсы API включают клиентскую объектную модель .NET, объектную модель JavaScript и службу REST. Дополнительные сведения об API в SharePoint и их использовании см. в статье Выбор правильного набора API в SharePoint.
Примечание.
Не все функции, включенные в сборку Microsoft.Office.Server.UserProfiles, доступны в клиентских API. Например, для создания и изменения профилей пользователей необходимо использовать серверную объектную модель, так как они доступны только для чтения в клиентских API (за исключением аватара пользователя). Кроме того, со стороны клиента невозможно получить доступ к некоторым пространствам имен, например Microsoft.Office.Server.Audience, Microsoft.Office.Server.ReputationModel или Microsoft.Office.Server.SocialData. Сведения о том, какие функции поддерживаются клиентскими API, см. в статьях Microsoft.SharePoint.Client.Social и Microsoft.SharePoint.Client.UserProfiles.
Каждый интерфейс API включает диспетчер объектов, который можно использовать для выполнения основных задач, связанных с профилем. В таблице 1 приведен диспетчер и другие ключевые объекты (или источники REST) в интерфейсах API, а также библиотека классов (или точка доступа), где их можно найти.
Примечание.
[!Примечание] Модель Silverlight и мобильная клиентская объектная модель не включены в таблицу 1 или таблицу 2, так как они предоставляют такой же основной функционал, как и клиентская объектная модель .NET, и одинаковые подписи. Клиентская объектная модель Silverlight определена в Microsoft.SharePoint.Client.UserProfiles.Silverlight.dll, а мобильная клиентская объектная модель в Microsoft.SharePoint.Client.UserProfiles.Phone.dll.
Таблица 1. API SharePoint, используемые для программной работы с профилями пользователей
Общие задачи программирования для работы с профилями пользователей в SharePoint
В таблице 2 приведены распространенные задачи программирования для работы с профилями пользователей и участники, используемые для их выполнения. Участники находятся в клиентской объектной модели .NET (CSOM), объектной модели JavaScript (JSOM), службе REST и серверной объектной модели (SSOM).
Табл. 2. Интерфейс API для общих задач программирования для работы с профилями пользователей
Задача | Участники |
---|---|
Создание экземпляра объекта диспетчера в контексте текущего пользователя | CSOM: PeopleManager JSOM: PeopleManager REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager SSOM: UserProfileManager (перегружен) или PeopleManager |
Изменение изображения в профиле текущего пользователя | CSOM: SetMyProfilePicture JSOM: setMyProfilePicture REST: POST http://<siteUri>/_api/SP.UserProfiles.PeopleManager/SetMyProfilePicture и передача параметра picture в тексте запросаSSOM: UserProfile [PropertyConstants.PictureUrl]. Value или SetMyProfilePicture |
Получение свойств текущего пользователя | CSOM: GetMyProperties JSOM: getMyProperties REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetMyProperties (или получение некоторых основных свойств пользователя из /_api/social.feed/my или /_api/social.following/my )SSOM: GetUserProfile |
Получение свойств конкретного пользователя | CSOM: GetPropertiesFor JSOM: getPropertiesFor REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='domain\\user' SSOM: GetUserProfile (перегружен) или GetPropertiesFor |
Получение свойств профиля пользователя для конкретного пользователя | CSOM: GetUserProfilePropertiesFor JSOM: getUserProfilePropertiesFor REST: не реализовано. Вызовите метод GetPropertiesFor, а затем получите свойства профиля пользователя из свойства UserProfileProperties возвращаемого объекта PersonProperties. SSOM: GetEnumerator |
Получение конкретного свойства профиля пользователя для пользователя | CSOM: GetUserProfilePropertyFor JSOM: getUserProfilePropertyFor REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor(accountName=@v,propertyName='PreferredName')?@v='domain\\user' SSOM: UserProfile (перегружен) и укажите имя свойства в индексаторе. |
Получение профиля пользователя | CSOM: GetUserProfile (возвращает профиль пользователя на стороне клиента только для текущего пользователя) JSOM: getUserProfile (возвращает клиентский профиль пользователя только для текущего пользователя) REST: POST http://<siteUri>/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/GetUserProfile (возвращает клиентский профиль пользователя только для текущего пользователя)SSOM: GetUserProfile (перегруженный) |
Узнать, существует ли учетная запись пользователя | CSOM: не реализовано JSOM: не реализовано REST: не реализовано SSOM: UserExists |
Создание или изменение профилей пользователей, а также свойств и атрибутов профиля пользователя (Клиентские интерфейсы API могут изменять изображение профиля. См. задачу "Изменение изображения в профиле пользователя" в этой таблице.) |
CSOM: не реализовано JSOM: не реализовано REST: не реализовано SSOM: несколько??? См . статью Практическое руководство. Работа с профилями пользователей и профилями организации с помощью серверной объектной модели в SharePoint |
Удаление профиля пользователя | CSOM: не реализовано JSOM: не реализовано REST: не реализовано SSOM: RemoveProfile или RemoveUserProfile (перегружен) |
Подготовка личного сайта пользователя | CSOM: CreatePersonalSiteEnque (перегружено) JSOM: createPersonalSiteEnque (перегружен) REST: POST http://<siteUri>/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/GetUserProfile/CreatePersonalSiteEnqueue SSOM: CreatePersonalSite() (перегружено) |
Подготовка одного или нескольких личных сайтов пользователей Доступно только для администраторов узлов Личный сайт на SharePoint Online |
CSOM: CreatePersonalSiteEnqueueBulk JSOM: createPersonalSiteEnqueueBulk REST: POST https://<domain>-admin.sharepoint.com/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/CreatePersonalSiteEnqueueBulk с передачей массива строк электронных адресов для параметра emailIDs (до 200 символов) в тексте запроса (например, {'emailIDs':['usera@contoso.onmicrosoft.com','userb@contoso.onmicrosoft.com']} ). SSOM: CreatePersonalSiteEnqueueBulk |
Новые объекты для пользователей и свойства пользователей в SharePoint
SharePoint содержит следующие новые объекты, которые представляют пользователей и их свойства:
Объекты SocialActor и SocialActorInfo представляют пользователей (и документы, сайты и задачи) для веб-канала и следующих действий.
Новый клиентский объект UserProfile , предоставляющий методы, которые можно использовать для создания личного сайта для текущего пользователя. Тем не менее он не содержит все свойства пользователей, которые содержит объект на сервере UserProfile .
Объект PersonProperties содержит общие свойства пользователя, а его свойство UserProfileProperties содержит свойства профиля пользователя. PersonProperties является основным интерфейсом API, предназначенным для доступа к свойствам пользователя из кода на стороне клиента.
Примечание.
Версии серверной объектной модели — это объект SPSocialActor и объект PersonProperties .