Re[2]: получить имена групп в которые входит пользователь
От: Аноним  
Дата: 04.03.09 21:17
Оценка: :)
кстати надо же, а решение ведь всего на 5 сообщений ниже... http://rsdn.ru/forum/message/3312911.1.aspx
Автор: Were
Дата: 04.03.09

это что, в каком то вузе лабы по сетям?
получить имена групп в которые входит пользователь
От: ssy2  
Дата: 02.03.09 19:29
Оценка:
как по полученому SID TokenGroups узнать имя группы?
Re: получить имена групп в которые входит пользователь
От: x64 Россия  
Дата: 02.03.09 20:22
Оценка:
S>как по полученому SID TokenGroups узнать имя группы?

LookupAccountSid()
Re[2]: получить имена групп в которые входит пользователь
От: ssy2  
Дата: 04.03.09 20:27
Оценка:
Здравствуйте, x64, Вы писали:

S>>как по полученому SID TokenGroups узнать имя группы?


x64>LookupAccountSid()

msdn пишет что эта функция возвращает имя пользователя, и может возвращать название домена. но ни как не группы.
нашёл функцию GetTextualSid, но она не много не то возвращает, нужна функция которая бы возвращала имена групп в которые входит пользователь(например Администраторы, Опытные пользователи, а не вида S-цифры-цифры-цифры-цифры).
Re[3]: получить имена групп в которые входит пользователь
От: Аноним  
Дата: 04.03.09 20:58
Оценка:
S>>>как по полученому SID TokenGroups узнать имя группы?
x64>>LookupAccountSid()
S>msdn пишет что эта функция возвращает имя пользователя, и может возвращать название домена. но ни как не группы.

The LookupAccountSid function accepts a security identifier (SID) as input. It retrieves the name of the account for this SID and the name of the first domain on which this SID is found.


Меньше фантазируйте при переводе. Или просто сделайте как вам сказали.
Re: получить имена групп в которые входит пользователь
От: Аноним  
Дата: 04.03.09 21:04
Оценка:
S>как по полученому SID TokenGroups узнать имя группы?
NetUserGetGroups
Между прочим реально токен залогиненного юзера может иметь в своих мемберах совсем иной список групп. Потому если у вас есть токен правильнее будет сделать GetTokenInformation(..TokenGroups..)
Re[4]: получить имена групп в которые входит пользователь
От: ssy2  
Дата: 05.03.09 17:35
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>>>как по полученому SID TokenGroups узнать имя группы?

x64>>>LookupAccountSid()
S>>msdn пишет что эта функция возвращает имя пользователя, и может возвращать название домена. но ни как не группы.
А>

А>The LookupAccountSid function accepts a security identifier (SID) as input. It retrieves the name of the account for this SID and the name of the first domain on which this SID is found.


А>Меньше фантазируйте при переводе. Или просто сделайте как вам сказали.

оффтоп, а как тогда по английски пользователь тот который залогинился? login чтоли
Re[2]: получить имена групп в которые входит пользователь
От: ssy2  
Дата: 05.03.09 17:38
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>как по полученому SID TokenGroups узнать имя группы?

А>NetUserGetGroups
А>Между прочим реально токен залогиненного юзера может иметь в своих мемберах совсем иной список групп. Потому если у вас есть токен правильнее будет сделать GetTokenInformation(..TokenGroups..)
нет. токена нету. я его получаю на основе того который залогинился

    HANDLE hToken;
    DWORD cbNeeded;
    PTOKEN_GROUPS  pGroup;
    
    // получаем идентификатор привилегии
    //if (!LookupPrivilegeValue(NULL, _nameUser, &Luid))
    //    return FALSE;

    // получаем токен текущего потока
    if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, FALSE, &hToken))
    {
        if (GetLastError() != ERROR_NO_TOKEN)
            return FALSE;

        // получаем токен процесса
        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
            return FALSE;
    }

    // определяем размер буфера, необходимый для получения
    // всех групп
    if (!GetTokenInformation(hToken, TokenGroups, NULL, 0, &cbNeeded))
    {
        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
        {
            DWORD dwError = GetLastError();
            CloseHandle(hToken);
            return SetLastError(dwError), FALSE;
        }
    }

    // выделяем память для выходного буфера
    pGroup = (PTOKEN_GROUPS)_alloca(cbNeeded);
    _ASSERTE(pGroup != NULL);

    // получаем список групп
    if (!GetTokenInformation(hToken, TokenGroups, pGroup, cbNeeded,
                             &cbNeeded))
    {
        DWORD dwError = GetLastError();
        CloseHandle(hToken);
        return SetLastError(dwError), FALSE;
    }

    CloseHandle(hToken);
Re[5]: получить имена групп в которые входит пользователь
От: Аноним  
Дата: 05.03.09 17:41
Оценка:
Здравствуйте, ssy2, Вы писали:

S>Здравствуйте, Аноним, Вы писали:


S>>>>>как по полученому SID TokenGroups узнать имя группы?

x64>>>>LookupAccountSid()
S>>>msdn пишет что эта функция возвращает имя пользователя, и может возвращать название домена. но ни как не группы.
А>>

А>>The LookupAccountSid function accepts a security identifier (SID) as input. It retrieves the name of the account for this SID and the name of the first domain on which this SID is found.


А>>Меньше фантазируйте при переводе. Или просто сделайте как вам сказали.

S>оффтоп, а как тогда по английски пользователь тот который залогинился? login чтоли
user, login
account это учетная запись
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.