Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение e-mail пользователя из Active Directory [D7, Win2k, WinXP]


Lexer ©   (2006-07-20 18:50:00) 

Нужно получить e-mail указанный в свойстве пользователя.
Думал ничего сложного - NetUserGetInfo. но...
USER_INFO_0,1,2,3,10,11,20 не содержат такой информации :(


lexer   (2006-07-21 18:42:00) [1]

Огромное спасибо oxfff, вот что у меня в итоге получилось, может кому пригодится:

uses ActiveX, ActiveDs_TLB, ComObj;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 Usr: IADsUser;
 Comp: IADsComputer;
 Cont: IADsContainer;
begin
 try
   Usr := GetObject('LDAP://CN=Иванов Иван,CN=Users,DC=CIT') as IADsUser;
    FUserEmail :=  Usr.EmailAddress;
 except
   on E: EOleException do
   begin
     ShowMessage(E.message);
   end;
 end;
end;

function TForm1.GetObject(const name: string): IDispatch;
var
 Moniker: IMoniker;
 Eaten: integer;
 BindContext: IBindCtx;
 Dispatch: IDispatch;
begin
 OleCheck(CreateBindCtx(0, BindContext));
 OleCheck(MkParseDisplayName(BindContext, PWideChar(WideString(name)), Eaten, Moniker));
 OleCheck(Moniker.BindToObject(BindContext, nil, IDispatch, Dispatch));
 Result := Dispatch;
end;


lexer   (2006-07-21 11:00:00) [2]

oxffff, большое спасиба, поюзаю ADSI, думаю направление правильное, а то меня что-то к MAPI потянуло


oxffff   (2006-07-20 23:13:00) [3]

Нашел
The IADsUser interface
get_EmailAddress


oxffff   (2006-07-20 22:58:00) [4]

Active Directory Service Interfaces
Purpose

Active Directory Service Interfaces (ADSI) is a set of COM interfaces used to access the features of directory services from different network providers. ADSI is used in a distributed computing environment to present a single set of directory service interfaces for managing network resources. Administrators and developers can use ADSI services to enumerate and manage the resources in a directory service, no matter which network environment contains the resource.

ADSI enables common administrative tasks, such as adding new users, managing printers, and locating resources in a distributed computing environment.

Where Applicable

Network Administrators can use ADSI to automate common tasks, such as adding users and groups, managing printers, and setting permissions on network resources.

Independent Software Vendors and end-user developers can use ADSI to "directory enable" their products and applications. Services can publish themselves in a directory, clients can use the directory to find the services, and both can use the directory to find and manipulate other objects of interest. Because Active Directory Service Interfaces are independent of the underlying directory service(s), directory-enabled products and applications can operate successfully in multiple network and directory environments.


oxffff   (2006-07-20 22:55:00) [5]

Скорее всего придется использовать LDAP или ADSI.


Наверх

Титульная страница Поиск, карта сайта Написать письмо