MOSS 2007 - Профиль пользователя

Очень часто в моей работе мне приходилось слышать от коллег большое количество вопросов о профилях пользователей в MOSS 2007.

Действительно, ситуация очень запутана:

  • Информация о пользователях хранится в разных местах системы;
  • Существует несколько способов измениея этой информации;
  • Информация о пользователе ведется независимо, от наличия или отсутсвия у него личного узла.

Существует две статьи, идеально разбирающие данный вопрос:

  1. SharePoint 2007: All you ever wanted to know about User Profiles
  2. MOSS User Profile Info - How the information flows

Вот схема, приведенная в одной из статей:

mossuserprofilestx1

Основная идея заключается в следующем:

  1. Честь информации о пользователе хранится в таблице UserInfo content db коллекции узлов;
  2. Sharepoint пытается заполнить информацию о пользователе, когда информация о нем впервые появляется на сайте;
  3. Актуальная информация о профиле пользователя храниться в shared service provider db.
  4. SSPDB обновляет информацию о пользователе с помощью специального задания и.
  5. Каждый час информация из SSP синхронизируется индивидуальными content DBs.
  6. Если в SSP нет информации о пользователе, то она берется из content DBs.
  7. Информация из SSP всегда переопределяет изменения, сделанные через MySettings.
  8. Любой пользователь может изменить информацию в UserInfo через MySettings (userdisp.aspx?ID={userid}, или useredit.aspx?ID={userid}). Любые изменения, сделанные таким образом, будут переопределены значениями из SSP. Существует способ изменить такое поведения.
  9. Если существует личный узел, пользователь должен изменять информацию о себе через него.

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