Синхронизация Справочника сотрудников с 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.
Полное описание свойств класса |
Менеджер длительных процессов 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. Подробнее об этом читайте в разделе по ссылке.