|
|
|
Чтение атрибутов пользователя (Имени, Фамилии) из ActiveDirectory
|
|||
|---|---|---|---|
|
#18+
Дано: Login пользователя Требуется: найти Фамилию, Имя пользователя в ActiveDirectory. Для получения доступа к ActiveDirectory откомпилировал и зарегистрировал DLL с функцией getUser(...), параметры получает, но не все. Итак, текст функции в DLL: Function getUser(ByVal strCnName As String, ByVal DC0 As String, ByVal DC1 As String, ByVal DC2 As String) As Recordset 'Получение информации о пользователе strCnName On Error GoTo ErrorHandler 'Соединение с Active Directory Dim cn As New Connection cn.CursorLocation = adUseClient cn.Provider = "ADsDSOObject" cn.Open 'Установка набора записей Dim rs As New Recordset Set rs.ActiveConnection = cn 'выполнение запроса Dim str As String str = "select cn, sAMAccountName, company, title, telephoneNumber" & " from 'LDAP://CN=" & strCnName & ",CN=" & DC0 & ",DC=" & DC1 & ",DC=" & DC2 & "'" '-к этой строке запроса вернемся чуть позже. rs.Source = str rs.Open 'отсоединение набора записей Set rs.ActiveConnection = Nothing cn.Close 'Возвращение записи Set getUser = rs Exit Function ErrorHandler: Err.Raise Err.Number, Err.Source, "GetUser from .dll: " & Err.Description End Function Пишу программу на VBScript (выбор языка объектного программирования в принципе неважен): Set obj = Server.CreateObject("asp0202.tstweb") -здесь имя DLL и имя класса, которому принадлежит функция User = "Administrator" CN0 = "Users" CN1 = "admkrs" CN2 = "ru" Set RsUserInfo = obj.getUser(User, CN0, CN1, CN2) Response.Write(" RsUserInfo.Fields.Count:"""+trim(RsUserInfo.Fields.Count)+"""<br>") For i=0 to RsUserInfo.Fields.Count-1 Response.Write(" "&trim(i)&":"""+RsUserInfo.Fields(i)+"""<br>") next Все работает, но мне нужно получить и другие текстовые атрибуты записи пользователя в ActiveDirectory Проблема в том, что я не знаю имен полей всех атрибутов. Если в DLL в функции getUser написать запрос, в котором указать * вместо конкретных имен полей, то Recordset возвращает только одно поле: RsUserInfo.Fields.Count = 1 созначением: RsUserInfo.Fields(0)="LDAP://CN=Administrator,CN=Users,DC=admkrs,DC=ru" Вопрос: возможно ли запросить сразу все поля атрибутов пользователя (что-то вроде "select * From LDAP//..."-но этот запрос точно не возвращает всех записей)? Если нет, то подскажите имена полей атрибутов пользователя, которые возможно прочитать в ActiveDirectory (Фамилия, имя, отчество и другие) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 18:01 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=34481437&tid=1458415]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 412ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...