LS_ActiveDirectory_Lib - свободно распространяемая библиотека на языке LotusScript с открытым исходным кодом. Библиотека поставляется "как есть". Вы можете использовать ее на свой страх и риск. Автор не несет ответственности за последствия использования библиотеки. При использовании библиотеки автор не ограничивает изменение кода библиотеки под свои нужды. Тем не менее, рекомендуется переопределение классов и методов в соответствии с принципами ООП.
Библиотека LS_ActiveDirectory_Lib предоставляет интерфейс взаимодействия с Microsoft Active Directory (MS AD) для IBM Notes/Domino. Взаимодействия происходит по протоколу LDAP. Для подключения используется OLE-объект ADODB.Connection.
Часть 2 и Часть 3 документации.
Часть 2 и Часть 3 документации.
Документация описывает только публичные классы и методы.
ADConnector (класс)
Основной класс, устанавливающий соединение с MS AD. Так же используется для выполнения запросов (получения объектов) к MS AD.Конструктор класса принимает в качестве параметров:
domainName: Строка. Имя домена для подключения. Можно указать конкретный контроллер домена для подключения. Если передано пустое значение, будет выброшена ошибка AD_ERR_PARAMEMPTY (3500)
userName: Строка. Логин учетной записи, под которой необходимо выполнить подключение. Логин следует вводить с указанием домена. Если передать пустое значение (""), подключение будет произведено с использованием текущей учетной записи.
userPwd: Строка. Пароль для учетной записи, под которой необходимо выполнить подключение, если параметр userName не пуст. Игнорируется, если параметр userName пуст.
При подключении проверятся, что контроллер, к которому произошло подключение - RW. В противном случае происходит поиск RW-контроллеров и переподключение.
Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "") 'Подключение к домену с использованием текущей учетной записи. '--------------------------------------------------------------------------------- Dim ad As New ADConnector("controller-1.MyOrg.org", "MyOrg\LotusAccount", "qwerty") 'Подключение
Свойства класса (публичные поля):
DomainControllerName: String GET
Возвращает текущее имя котроллера домена, к которому было выполнено подключение.DomainName: String GET
Возвращает текущее имя домена.Методы класса:
ConvertToADAttribute: String
Конвертирует переданное значение, удаляя спец. символы (, " « ») и обрезая значение до 64 символов.Параметр:
srcString: Строка - значение, которое необходимо сконвертировать
CreateADObject: ADObject
Создает новый объект в MS AD заданного типа. Внимание! Метод не сохраняет объект, для сохранения объекта, необходимо вызвать метод Save() в экземпляре класса ADObject.Параметры:
objType: Строка - тип создаваемого объекта, одно из значений:
- AD_OBJECT_OU - контейнер
- AD_OBJECT_USER - пользователь
- AD_OBJECT_GROUP - группа
- AD_OBJECT_COMPUTER - устройство. на текущий момент не поддерживается. При передаче этого значения возникнет ошибка.
objContainer: Строка - контейнер, содержащий новый объект. Если в качестве значения будут передан Nothing, будет выброшена ошибка AD_ERROR_PARAMNOTHING (3501)
Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "") Dim adContainer As ADOU Dim adUser As ADUser Set adContainer = ad.FindObj(Nothing, AD_OBJECT_OU, "UserContainer", AD_ATTRIBUTE_NAME) 'Поиск контейнера, где будет создан объект Set adUser = ad.CreateADObject(AD_OBJECT_USER, "Petrov-IS", adContainer) 'Создание объекта
Delete
Деструктор. Освобождение ресурсов.FindObj: ADObject
Производит поиск объекта в MS AD в заданными параметрами. Возвращает только один (первый) объект, удовлетворяющий критериям поиска. Если объект не найден, вернет Nothing.
Параметры:
topObj: ADOU - объект-контейнер, в поддереве которого следует производить поиск. Если значение параметра Nothing - поиск будет происходит от корня.
objType: Строка - тип искомого объекта, одно из значений:
- AD_OBJECT_OU - контейнер
- AD_OBJECT_USER - пользователь
- AD_OBJECT_GROUP - группа
- AD_OBJECT_COMPUTER - устройство
searchAtrr: Строка - атрибут объекта, по которому производится поиск. Значение можно задать через уже определнные константы библиотеки:
- AD_ATTRIBUTE_DISTINGUISHEDNAME
- AD_ATTRIBUTE_SAMACCOUNTNAME
- AD_ATTRIBUTE_CN
- AD_ATTRIBUTE_NAME
- AD_ATTRIBUTE_DESCRIP
Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "") Dim adContainer As ADOU Dim adUser As ADUser Set adContainer = ad.FindObj(Nothing, AD_OBJECT_OU, "UserContainer", AD_ATTRIBUTE_NAME) 'Поиск контейнера Set adUser = ad.FindObj(adContainer, AD_OBJECT_USER, "Petrov-IS", AD_ATTRIBUTE_SAMACCOUNTNAME) 'Поиск пользователя в поддереве контейнера '---------------------------------------------------------------------------------------- Dim ad As New ADConnector("MyOrg.org", "", "") Dim adContainer As ADOU Dim adUser As ADUser Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Petrov-IS", AD_ATTRIBUTE_SAMACCOUNTNAME) 'Поиск пользователя по всему дереву
GetADObject: ADObject
Преобразовывает (оборачивает) OLE-объект в экземпляр класса ADObject.Параметры:
objType: Строка - тип объекта, одно из значений
- AD_OBJECT_OU - контейнер
- AD_OBJECT_USER - пользователь
- AD_OBJECT_GROUP - группа
- AD_OBJECT_COMPUTER - устройство
InitObj: Variant
Получает OLE-объект MS AD по его полному пути. Если получить объект не удалось, будет выброшена ошибка AD_ERR_ADOBJECTNOTFOUND (3504)Параметры:
objPath: String - путь к объекту в каноническом виде (CN=...)
Комментарии
Отправить комментарий