Синхронизация Справочника сотрудников с Active Directory

Для синхронизации Справочника сотрудников с Active Directory достаточно вызвать специальный метод сервиса для работы со Справочником сотрудников

IStaffService staffService = objectContext.GetService<IStaffService>(); (1)

SynchronizationDepartmentsSettings syncSettings = new SynchronizationDepartmentsSettings(); (2)

LongProcessManager longProcessManager = new LongProcessManager(); (3)

staffService.SynchronizeWithActiveDirectory(syncSettings, longProcessManager); (4)
1 Инициализация контекста объектов и получение сервиса.
2 Инициализация параметров синхронизации.
3 Инициализация менеджера длительных процессов.
4 Выполнение синхронизации.

В приведенном примере класс SynchronizationDepartmentsSettings должен реализовывать интерфейс IADSynchronizationSettings, например, следующим образом:

class SynchronizationDepartmentsSettings : IADSynchronizationSettings
{
 public bool CreateFolders { get { return false; } }
 public bool DeleteItems { get { return false; } }
 public bool LoadCertificates { get { return false; } }
 public bool LoadDisabled { get { return false; } }
 public bool NotCheckDomain { get { return false; } }

 public ADSynchronizationMode SynchronizationMode
 {
  get { return ADSynchronizationMode.FromADToDictionary; } (1)
 }
 public bool SynchronizeChildren { get { return false; } }

 public bool SynchronizeDepartments
 {
  get { return true; } (2)
 }
 public bool SynchronizeGroups { get { return false; } }
 public bool SynchronizeNewMoved { get { return false; } }
 public bool SynchronizeRoles { get { return false; } }
}
1 Направление синхронизации в сторону Справочника сотрудников.
2 Разрешить синхронизацию подразделений.

Здесь класс SynchronizationDepartmentsSettings устанавливает требование по синхронизации подразделений в Справочнике сотрудников информацией, полученной из Active Directory.

Полное описание свойств класса SynchronizationDepartmentsSettings смотрите в описании интерфейса IADSynchronizationSettings.

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

class LongProcessManager : ILongProcessManager
{
 public void Cancel() { }
 public bool CancellationPending { get {return false;} }
 public bool PausePending { get { return false; } }
 public void LogMessage(string message) { }
}

Чтобы синхронизация могла быть выполнена необходимо связать элемент Справочника сотрудников и объект Active Directory. Подробнее об этом читайте в разделе по ссылке.