🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346632

ActiveDirectory

#346632
From: Sivy
Date: Fri, 08 Jun 2018 13:57
99 lines
3322 bytes
Witam

Potrzebuję się połączyć do AD aby pobrać listę użytkowników i ich 
niektórych danych.

Znalazłem w internecie taki artykuł

http://agnisoft.com/white_papers/active_directory.asp

pliki do niego też udało się odnaleźć, skompilowałem, uruchomiłem, 
odczytało userów i grupy do których należą.

Czyli to co chciałem na początek widzę że jest.
Zacząłem przeglądać kod, aby odczytać inne informacje niż na załączonym 
'demie' (tam jest tylko username, fullname i description).

I tutaj nie udało mi się pobrać innych danych, chciałem pobrać np. 
Firstname, lastname, email, cokolwiek bym chciał pobrać dostaje taki 
komunikat.


---------------------------
Debugger Exception Notification
---------------------------
Project UserManager.exe raised exception class EOleException with 
message 'Nie można odnaleźć właściwości katalogu w buforze'.
---------------------------
Break   Continue   Help
---------------------------


---------------------------
Usermanager
---------------------------
Nie można odnaleźć właściwości katalogu w buforze.
---------------------------
OK
---------------------------



https://images.tinypic.pl/i/00966/648qn5i87kny.png



I teraz nie wiem czy ja coś źle robię czy to może inaczej trzeba robić.

Dla testów 'podpiąłem się' pod kod z dema gdzie są odczytywane niektóre 
wartości

procedure TfrmUser.trUserChange(Sender: TObject; Node: TTreeNode);
var usr : IAdsUser;
     flags : integer;
begin
   if Node = nil then Exit;
   if FUseOpenObject then
     ADsOpenObject('WinNT://' + FDomain + '/' + Node.Text, FUserName, 
FPassword, 1, IADsUser, usr)
   else
     ADsGetObject('WinNT://' + FDomain + '/' + Node.Text, IADsUser, usr);

   Assert(usr <> nil);
   edtUserName.Text := node.Text;
   edtFullName.Text := usr.FullName;
   edtDescription.Text := usr.Description;



i dopisałem następne pola, np

   ShowMessage(usr.FirstName);
   ShowMessage(usr.LastName);
   ShowMessage(usr.EmailAddress);


ale zawsze wyrzuca błąd jak wyżej.


Najbardziej też zależy mi na "extensionAttribute", żeby tam się dostać.

Czy ten kod może jest już nieaktualny i trzeba użyć czegoś innego ?
Jeżeli tak to proszę o jakieś wskazówki, jakiś komponent, kod, etc.


Link do paczki tutaj

https://www.dropbox.com/s/bk1oae0pcjupz5z/adsicode.zip?dl=0


Środowisko:

Delphi 2007
Windows server 2012R2
Windows server 2016


Pozdrawiam
-- 
Sivy
Technical Details
Message-ID: <pfe20e$nj1$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Sivy <another@NOSPAMpoczta.fm>
Newsgroups: pl.comp.lang.delphi
Subject: ActiveDirectory
Date: Fri, 8 Jun 2018 15:57:33 +0200
Organization: ATMAN - ATM S.A.
Lines: 99
Message-ID: <pfe20e$nj1$1@node2.news.atman.pl>
NNTP-Posting-Host: 46.77.93.72
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1528466254 24161 46.77.93.72 (8 Jun 2018 13:57:34 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Fri, 8 Jun 2018 13:57:34 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
X-Mozilla-News-Host: news://news.atman.pl:119
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit