SharePoint Online. Получение изображения пользователя

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

Примеры в этом посте работает не только в SharePoint Online, но также и в SharePoint On-Premise (как минимум в SharePoint 2019 и в SharePoint 2016).

Также как и для документов в SharePoint существует хендлер для получения изображения пользователя:

/_layouts/15/userphoto.aspx

Идентификация пользователя

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

  • UserName
  • AccountName

Изображение хранится в профиле пользователя. Т.е. SharePoint необходимо сначала получить профиль. Если параметр AccountName передан в запросе, то SharePoint пробует найти профиль, используя переданное значение (это может быть основной аккаунт или адрес электронной почты).

Если вы передаете параметр UserName, то SharePoint сначала пробует получить пользователя по указанному логину, а затем уже выгрузить профиль этого пользователя.

SharePoint всегда получает изображение пользователя, используя параметр AccountName. Если передан параметр UserName, то он будет использован только для получения параметра AccountName на стороне сервера.

Указывайте параметр AccountName вместо UserName, если это возможно, для избежания выполнения лишних операций на стороне сервера.

Получение изображение пользователя, используя параметр UserName:

/_layouts/15/userphoto.aspx?UserName=login@tenant.onmicrosoft.com

Наиболее эффективный способ (если известен основной аккаунт или адрес электронной почты):

/_layouts/15/userphoto.aspx?AccountName=mail@domain.com

Размер

Возможно три размера изображения пользователя в SharePoint:

  • L - 240x240
  • M - 72x72
  • S - 48x48 (по умолчанию)

Для указания размера необходимо использовать параметр Size.

SharePoint Размеры изображения профиля пользователя

Размеры изображения профиля пользователя

Получение изображения пользователя размером 240x240 по имени аккаунта или почте (AccountName):

/_layouts/15/userphoto.aspx?AccountName=mail@domain.com&Size=L

Кэширование

По умолчанию SharePoint кэширует изображение на один день. Используя параметры Cache и t, можно управлять использованием кэша.

Параметр Cache может принимать любое значение, а параметр t должен быть представлен числом (кол-во секунд).

Получение изображения с кэшированием на 5 минут (300 секунд):

/_layouts/15/userphoto.aspx?AccountName=mail@domain.com&**Cache=1&t=300**

Управление кэшированием доступно только в SharePoint on-premise. SharePoint Online всегда кэширует изображения профиля на 24 часа.

Для управления параметрами кэширования используйте свойство DisableEnhancedBrowserCachingForUserPhotos веб-приложения. Следующий PowerShell скрипт включает возможность управлять кэшированием:

$webApp = Get-SPWebApplication https://sharepointportal
$webApp.Properties.Add("DisableEnhancedBrowserCachingForUserPhotos", "true")
$webApp.Update()
Виталий Жуков

Виталий Жуков

SharePoint архитектор, разработчик, тренер, Microsoft MVP (Office Development). Более 15 лет опыта работы с SharePoint, Dynamics CRM, Office 365, и другими продуктами и сервисами Microsoft.

Смотрите также

SharePoint Online. Эскиз документа

SharePoint Online. Эскиз документа

SharePoint Online. Форматирование столбцов

SharePoint Online. Форматирование столбцов

SharePoint Online теперь только IE11+

SharePoint Online теперь только IE11+