| 
 | 
| 
 
Чтение атрибутов пользователя (Имени, Фамилии) из 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&fpage=383&tid=1458415]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    46ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    76ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 240ms | 
| total: | 410ms | 

| 0 / 0 | 

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