Для того что бы получить E-mail доменного пользователя из Active Directory, можно обойтись без использования  SQL запроса с ADSDSOObject (см. http://community.terrasoft.ua/node/2936). Для этого нужно использовать следующую функцию:

function GetDomainContactMail(ContactName) {
         var Info = new ActiveXObject('ADSystemInfo');
         var UserName = Info.username;
         var Index = UserName.match('OU').index;
         var GroupName = UserName.substr(Index,UserName.length-1);
         var User = GetObject("LDAP://CN=" + ContactName + ","+ GroupName);
         return User.mail;
}

Плюсы: нет необходимости настраивать SQL Server для использования ADSDSOObject
Минусы: пользователь в Active Directory должен находится в той же группе что и администратор. Если точно известна группа из которой будут импортироваться пользователи, функцию не сложно модифицировать для этого случая, вставив var GroupName = "..."

Идея подсказана Бардой Вадимом.

Нравится

Поделиться

2 комментария

В примере используется функция GetObject(). Где ее можно взять?

Это стандартная функция Jscript (см. http://msdn.microsoft.com/ru-ru/library/ebdktb00.aspx) начиная с версии 3.0 (см. http://msdn.microsoft.com/ru-ru/library/2z6exc9e.aspx)

Показать все комментарии