﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / Программирование  / Чтение атрибутов пользователя (Имени, фамилии) из ActiveDirectory / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Fri, 05 Sep 2008 18:19:21 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Чтение атрибутов пользователя (Имени, фамилии) из ActiveDirectory</title><link>http://www.relib.com/forums/Topic910661-15-1.aspx</link><description>Вопрос снят, решается выбором порта в Ldap-запросе</description><pubDate>Fri, 16 Feb 2007 08:28:10 GMT</pubDate><dc:creator>AvnAvn</dc:creator></item><item><title>RE: Чтение атрибутов пользователя (Имени, фамилии) из ActiveDirectory</title><link>http://www.relib.com/forums/Topic910661-15-1.aspx</link><description>Вопрос снят, помог LdapBrowser</description><pubDate>Fri, 16 Feb 2007 08:26:24 GMT</pubDate><dc:creator>AvnAvn</dc:creator></item><item><title>Чтение атрибутов пользователя (Имени, фамилии) из ActiveDirectory</title><link>http://www.relib.com/forums/Topic910661-15-1.aspx</link><description>&lt;SPAN id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl04_lblFullMessage&gt;Дано: Login пользователя&lt;BR&gt;Требуется: найти Фамилию, Имя пользователя в ActiveDirectory.&lt;BR&gt;Для получения доступа к ActiveDirectory откомпилировал и зарегистрировал DLL с функцией getUser(...), параметры получает, но не все. &lt;P&gt;Итак, текст функции в DLL:&lt;BR&gt;Function getUser(ByVal strCnName As String, ByVal DC0 As String, ByVal DC1 As String, ByVal DC2 As String) As Recordset&lt;BR&gt;'Получение информации о пользователе strCnName&lt;BR&gt;On Error GoTo ErrorHandler&lt;BR&gt;'Соединение с Active Directory&lt;BR&gt;Dim cn As New Connection&lt;BR&gt;cn.CursorLocation = adUseClient&lt;BR&gt;cn.Provider = "ADsDSOObject"&lt;BR&gt;cn.Open&lt;BR&gt;'Установка набора записей&lt;BR&gt;Dim rs As New Recordset&lt;BR&gt;Set rs.ActiveConnection = cn&lt;BR&gt;'выполнение запроса&lt;BR&gt;Dim str As String&lt;BR&gt;str = "select cn, sAMAccountName, company, title, telephoneNumber" &amp;amp; " from 'LDAP://CN=" &amp;amp; strCnName &amp;amp; ",CN=" &amp;amp; DC0 &amp;amp; ",DC=" &amp;amp; DC1 &amp;amp; ",DC=" &amp;amp; DC2 &amp;amp; "'" '-к этой строке запроса вернемся чуть позже.&lt;BR&gt;rs.Source = str&lt;BR&gt;rs.Open&lt;BR&gt;'отсоединение набора записей&lt;BR&gt;Set rs.ActiveConnection = Nothing&lt;BR&gt;cn.Close&lt;BR&gt;'Возвращение записи&lt;BR&gt;Set getUser = rs&lt;/P&gt;&lt;P&gt;Exit Function&lt;BR&gt;ErrorHandler:&lt;BR&gt;    Err.Raise Err.Number, Err.Source, "GetUser from .dll: " &amp;amp; Err.Description&lt;BR&gt;End Function&lt;/P&gt;&lt;P&gt;Пишу программу на VBScript (выбор языка объектного программирования в принципе неважен):&lt;BR&gt;Set obj = Server.CreateObject("asp0202.tstweb")&lt;BR&gt;-здесь имя DLL и имя класса, которому принадлежит функция&lt;BR&gt;User = "Administrator"&lt;BR&gt;CN0 = "Users"&lt;BR&gt;CN1 = "admkrs"&lt;BR&gt;CN2 = "ru"&lt;BR&gt;Set RsUserInfo = obj.getUser(User, CN0, CN1, CN2)&lt;BR&gt; Response.Write("&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; RsUserInfo.Fields.Count:"""+trim(RsUserInfo.Fields.Count)+"""&amp;lt;br&amp;gt;")&lt;BR&gt; For i=0 to RsUserInfo.Fields.Count-1&lt;BR&gt;       Response.Write("&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; "&amp;amp;trim(i)&amp;amp;":"""+RsUserInfo.Fields(i)+"""&amp;lt;br&amp;gt;")&lt;BR&gt; next&lt;BR&gt;&lt;/P&gt;&lt;P&gt;Все работает, но мне нужно получить и другие текстовые атрибуты записи пользователя в ActiveDirectory&lt;BR&gt;Проблема в том, что я не знаю имен полей всех атрибутов.&lt;BR&gt;&lt;BR&gt;Если в DLL в функции getUser написать запрос, в котором указать * вместо конкретных имен полей,&lt;BR&gt;то Recordset возвращает только одно поле:&lt;BR&gt;RsUserInfo.Fields.Count = 1 созначением:&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#336633&gt;RsUserInfo.Fields(0)="&lt;A href="ldap://CN=Administrator,CN=Users,DC=admkrs,DC=ru/"&gt;LDAP://CN=Administrator,CN=Users,DC=admkrs,DC=ru&lt;/A&gt;"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Вопрос: возможно ли запросить сразу все поля атрибутов пользователя (что-то вроде "select * From LDAP//..."-но этот запрос точно не возвращает всех записей)?&lt;BR&gt;Если нет, то подскажите имена полей атрибутов пользователя, которые возможно прочитать в ActiveDirectory (Фамилия, имя, отчество и другие)&lt;/SPAN&gt;</description><pubDate>Sat, 10 Feb 2007 17:42:54 GMT</pubDate><dc:creator>AvnAvn</dc:creator></item></channel></rss>