AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2009, 18:52   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Можно воспользоваться ADO
X++:
static void GetUserList(Args _args)
{
    Com oConnect = new Com("ADODB.Connection");
    Com property;
    Com Properties;
    Com rs;
    Com Fields;
    Com Field;
    ComVariant var;
    Array   array;
    str s;
    int i;
    boolean f;
    str address;
    #define.UF_ACCOUNTDISABLE(0x02)
    ;
    oConnect.Provider("ADsDSOObject");
    Properties = oConnect.Properties();

/*
    property = Properties.Item("User ID");
    property.Value("пользователь");

    property = Properties.Item("Password");
    property.Value("пароль");*/
// Если для доступа надо подключаться под другим пользователем, то раскомментировать и указать правильный аккаунт

    property = Properties.Item("Encrypt Password");
    property.Value(True);

    oConnect.Open("DS Query");

// OU добавляются вначале  запроса LDAP <LDAP://OU=Организация,DC=Axapta,DC=ru>
    rs = oConnect.Execute(ComVariant::createFromStr( "<LDAP://DC=Axapta,DC=ru>;(&((objectClass=user)(objectCategory=person)));" +
        "userAccountControl,userPrincipalName,Name,proxyAddresses,sAMAccountName,Mail;subTree")); //;onelevel
    SetPrefix("Пользователи домена");
    While (!rs.EOF())
    {
        Fields = rs.Fields();
        Field = Fields.Item("userAccountControl");
        var = Field.Value();
        if ((var.int() & #UF_ACCOUNTDISABLE) == 0)       // Только активные пользователи
        {
            Field = Fields.Item("sAMAccountName");       // имя аккаунта
            var = Field.Value();
            s = var.bStr();

            Field = Fields.Item("userPrincipalName");    // имя в формате  имя@домен
            var = Field.Value();
            s += ";" + var.bStr();

            Field = Fields.Item("Name");                 // полное имя
            var = Field.Value();
            s += ";" + var.bStr();

            Field = Fields.Item("proxyAddresses");       // почтовый адрес на сервере Exchange
            var = Field.Value();
            address = "";
            if (var.variantType() != ComVariantType::VT_NULL)
            {
                array = var.safeArray();
                for (i=1;i<=array.lastIndex();i++)
                {
                    var = array.value(i);
                    if (var.variantType() == ComVariantType::VT_BSTR)
                    {
                        if (match("<SMTP", var.bStr()))
                            address += (address ? "," : "") + substr(var.bStr(), strLen("SMTP:")+1, strLen(var.bStr()));
                    }
                }
                if (address)
                    s += ";" + address;
                else
                {
                    Field = Fields.Item("Mail");                 // поле адреса в данных пользователя
                    var = Field.Value();
                    s += ";" + var.bStr();
                }
            }
            info(s);
        }
        rs.MoveNext();
    }
}
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 01.07.2009 в 18:57.
За это сообщение автора поблагодарили: sukhanchik (3), Poleax (1), Fizik (1), oip (5).
Теги
active directory, ado, ax3.0, sql, доменный пользователь, хранимые процедуры

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Arijit Basu: Reporting & BI in AX: An Overview [Level 100] Blog bot DAX Blogs 0 07.01.2008 16:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:02.