работа с Active Directory из ASP или ASP.NET
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



работа с Active Directory из ASP или ASP.NET Expand / Collapse
Автор
Сообщение
26.08.2002 12:46
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.09.2002 13:19
Сообщ.: 2, Visits: 23
надо для себя, как администратора, сделать страничку, которая позволяла бы считывать состав группы пользователей из AD и добавлять/удалять из этой группы пользователей.
я понимаю, что для этого надо использовать adsi, но так как раньше подобным (то есть с AD) не занимался, то хочется увидеть работающие примеры подобного кода на ASP или ASP.NET
Сообщ. #759173
26.08.2002 15:13
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2005 5:44
Сообщ.: 669, Visits: 7 360
Если разберешься, (я сам уже с трудом разбираюсь чего я тут понаписал :)) - давно это было) то вот такой код 100% рабочий, пользуюсь каждую неделю почти.

<%@ Language=VBScript %>
<%Response.Buffer=false
on error resume next
'////////////////////////////////////////////////////////////////////////////
'служебная страница для перевода информации о персонах их Active Directory
'в базу данных
'//////////////////////////////////////////////////////////////////////////

'Соединяемся с базой данных
Dim connIntranet,rsIntranet,rsIntranet1
set connIntranet=Server.CreateObject ("ADODB.Connection")

'открываем объект
connIntranet.Open "Provider=sqloledb;Data Source=MORPHEUS\ONTARIO;Initial Catalog=intranet;User Id=Dima;Password=;"


set rsIntranet=Server.CreateObject ("ADODB.Recordset")
set rsIntranet1=Server.CreateObject ("ADODB.Recordset")

'соединяемся с ActiveDirectory
set connAD=server.CreateObject("adodb.connection")
connAD.provider="ADsDSOObject"
connAD.open "ADSI"

set rsAD=server.CreateObject("adodb.recordset")
rsAD.open "'LDAP://neo.gskaudit.spb.ru/OU=Группа КУБ,DC=gskaudit,DC=spb,DC=ru' where objectCategory='user'",connAD

Dim user_exists_in_db
user_exists_in_db=false

do while rsAD.EOF=false 'цикл по всем групам в AD

set user=GetObject(rsAD(0)) 'получим объект типа group


rsIntranet.Open "SELECT * FROM tblPersons WHERE login_name='" & user.samaccountname & "'",connIntranet

if rsIntranet.BOF=true and rsIntranet.EOF=true then 'user-а нет в базе данных

department_id=-1

'вытаскиваем id депарамента из базы
rsIntranet1.Open "SELECT * FROM tblDepartments",connIntranet
do while rsIntranet1.EOF
if Instr(1,user.distinguishedname,rsIntranet("ad_object"))<>0 then
department_id=rsIntranet("department_id")
end if

rsIntranet.MoveNext ()
loop
rsIntranet1.Close()


'добавляем user-a в базу
Dim strSQL


connIntranet.Execute "execute new_person " & department_id & ",'" & user.samaccountname & "','" & user.distinguishedname & "','" & user.fullname & "'"

connIntranet.Execute "INSERT INTO tblNews (division_id,author_id,header,published_at) VALUES (5,164,'В нашей компании появился новый сотрудник - " & user.fullname & "',GETDATE())"

Dim newsID
rsIntranet.Open "SELECT @@IDENTITY",connIntranet
newsID=rsIntranet(0)
rsIntranet.Close()

'регистрируем область действия новости
'для данной новости - это Группа КУБ
connIntranet.Execute "INSERT INTO tblNewsDepartments (news_id,department_id)" & _
" VALUES (" & newsID & ",12)"

Response.Write "Пользователь <b>" & user.samaccountname & "</b>" & "добавлен в базу <BR>"




else 'user есть в базе данных

end if

rsIntranet.Close()

rsAD.MoveNext ()
loop

%>
Сообщ. #759197
26.08.2002 15:20
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.09.2002 13:19
Сообщ.: 2, Visits: 23
спасибо, сейчас попробую...
Сообщ. #759199
24.09.2002 20:14
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
в строке 'LDAP://neo.gskaudit.spb.ru/OU=Группа КУБ,DC=gskaudit,DC=spb,DC=ru' что такое "OU", "DC" и пр.? Можешь подробнее подсказать?
Сообщ. #761787
25.09.2002 10:07
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.02.2005 5:44
Сообщ.: 669, Visits: 7 360
DC - domain controller
OU - organizational unit
Сообщ. #761821
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 1:29