Sharepoint 2010 - Могу ли я переписать ссылку на фотографию пользователя? - PullRequest
0 голосов
/ 03 ноября 2010

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

http://services.domain.com/photo.ashx?login=kobi&width=64&height=64

Каков хороший способ «перемонтировать» все фотографии SharePoint в этот сервис?Я хотел бы избежать загрузки всех фотографий на сайт /my или обновления Active Directory - я ищу решение с полным кодом.

Могу ли я переписать часть, которая отображает фотографию?Если нет, можете ли переписать URL-адреса всех фотографий пользователей?

Похоже, что SharePoint использует ProfilePropertyImage из Microsoft.SharePoint.Portal.dll. Я бы хотел, чтобы SharePoint использовал вместо этого мой элемент управления.Это слишком оптимистично?

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Существует небольшой скрипт STSADM, изменяющий URL-адрес изображения пользователя с помощью пользовательского URL-адреса и идентификатора пользователя.Это было сделано для Sharepoint 2007, но, может быть, это легкое изменение для SP2010?На самом деле это даже выглядит так, как будто из него можно сделать небольшое консольное приложение.

Может быть, вы заинтересованы в пользовательском обработчике HTTP для изображений пользователей (снова Sharepoint 2007)?

В Sharepoint 2010 вы можете обратиться к службе синхронизации профилей пользователей. Может быть, вы можете каким-то образом прикрепить URL-адрес своего специального изображения к профилям?

1 голос
/ 04 ноября 2010

Если вы используете UserProfiles с UserProfileManager, вы можете установить это свойство вручную при импорте профилей. Вы можете настроить импорт из любой системы, а затем при создании профиля пользователя просто установите в поле PictureUrl свой пользовательский URL-адрес. Вместо использования встроенной синхронизации профилей вы можете использовать пакетное задание из простого консольного приложения, чтобы лучше контролировать импорт. Вы можете запустить этот код из .exe как часть ночного обновления профиля из различных систем.

SPServiceContext serviceContext = SPServiceContext.GetContext(topSite);
UserProfileManager profileMgr = ProfileLoader.GetProfileLoader(serviceContext).GetUserProfileManager();
UserProfile curUser = null;
if (profileMgr.UserExists(userId))
{
    curUser = profileMgr.GetUserProfile(userId);
} 
else
{
    curUser = profileMgr.CreateUserProfile(userId);
}
//Set lots of other properties here
curUser[PropertyConstants.PictureUrl].Value = "http://services.domain.com/photo.ashx?login=" + userId + "&width=64&height=64";
curUser.Commit();

Это установит свойство PicureUrl в ваш пользовательский URL, и вам не нужно загружать все фотографии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...