Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.18;
Скачать: CL | DM;

Вниз

Получение информации о правах текущего пользователя   Найти похожие ветки 

 
AlexanderV   (2002-01-23 10:15) [0]

Люди!!!
Поскажите, пожалуйста, как получить информацию о категории текущего пользователя (administrators, guests, ...) под Win NT
(4, 2000)


 
Rem ©   (2002-01-23 10:50) [1]

funcion GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength): boolean;

Для получения информации о пользователе и группе в TokenInformationClass надо передать TOKEN_USER, TOKEN_GROUPS, при этом у запрашивающего процесса должна быть привилегия TOKEN_QUERY


 
Tosov ©   (2002-01-23 23:36) [2]

А можно попробовать так

NetUserGetInfo (Nil, login, 11, @info)
if Info^.usri11_priv=2 then Admin;
if Info^.usri11_priv=1 then User;
if Info^.usri11_priv=0 then Guest;

http://delphi.xonix.ru/faq/users/isadmin01.shtml


 
Егор   (2002-01-24 11:01) [3]

RE: Tosov

Интересно, где же в Дельфях такая функция?
NetUserGetInfo
Я не нашел. В С++ - пожалуйста.


 
Егор   (2002-01-24 11:04) [4]

Точнее сказать в Дельфях ее нужно самому вызывать из DLL.


 
Егор   (2002-01-24 11:18) [5]

А может кто знает как добавить юзера в локальную группу?
Например в админы.


 
Севостьянов Игорь ©   (2002-01-24 16:29) [6]

Вообще-то лучше почитать иногда MSDN, иногда помогает !!!
А все функции которые возможно тебе понадобяться кроме этих - функции NetAPI

The NetLocalGroupAddMembers function adds membership of one or more existing user accounts or global group accounts to an existing local group. The function does not change the membership status of users or global groups that are currently members of the local group.

NET_API_STATUS NetLocalGroupAddMembers(
LPCWSTR servername,
LPCWSTR groupname,
DWORD level,
LPBYTE buf,
DWORD totalentries
);


Есть вопросы еще ? Пиши на мыло ...


 
Севостьянов Игорь ©   (2002-01-24 16:32) [7]

В Дельфийском варианте будет, что-то типа

function FNetLocalGroupAddMembers(ServerName, GroupName: string; Level: DWord;
Buffer: Pointer;
TotalEntries: DWord): NET_API_STATUS;
var
S, G : TLMWideChar;
begin
Result := 0;
if IsNetApi32 then begin
if (@_NetLocalGroupAddMembers = nil) then
@_NetLocalGroupAddMembers := GetProcAddress(NETAPI32, "NetLocalGroupAddMembers");

if (@_NetLocalGroupAddMembers <> nil) then begin
{ determine if UNC identifiers needed }
ServerName := ServerUncName(ServerName);

S.Value := nil;
G.Value := nil;
try
{ allocate the unicode server name }
CvtToWideChar(ServerName, S);

{ allocate the unicode group name }
CvtToWideChar(GroupName, G);

{ call the API }
Result := _NetLocalGroupAddMembers(S.Value, G.Value, Level, Buffer,
TotalEntries);
finally
FreeMem(S.Value, S.Length);
FreeMem(G.Value, G.Length);
end;
end else
RaiseStWin32Error(EStNetException, GetLastError);
end else begin
{ EStNetException }
RaiseStWin32ErrorEx(EStNetException, GetLastError, NETAPI32DLL);
end;
end;



 
Tosov ©   (2002-01-24 19:54) [8]

Егор
Эта функция не в Delphi и не в C++. Она в WindowsNT!!!
Если тебе надо работать с ней под Delphi или нажми на ссылочку в моем посте или зайди на http://www.delphi-jedi.org и скачай переводы сишных фаайлов (не помню как называется).


 
Егор   (2002-01-25 02:50) [9]

Tosov
Я имел ввиду, что эта функция и все что с ней связано (структуры и т.п.) не описана в Дельфи (Windows.pas). Т.е. Борланд посчитал, что это тут не надо, а в С++ Builder Professional описание этих функций и структур есть.
А вобще за ответ спасибо :-))



Страницы: 1 вся ветка

Текущий архив: 2002.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
14-57869
dima_
2002-03-11 13:35
2002.04.18
Подскажите как перенести текст из Тmemo в memo ячейку таблицы...


1-57778
Zool
2002-04-05 16:34
2002.04.18
_FileTime


3-57629
Yuri Btr
2002-03-28 12:18
2002.04.18
Изменение формата базы данных!


3-57647
Roman_Tutov@mail.ru
2002-03-28 10:48
2002.04.18
проблема c DataSource.DataChange


1-57695
snoup
2002-04-07 21:49
2002.04.18
Как нарисовать что-нибудь на твоей форме?