Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.008 c
3-57587
Malder
2002-03-26 18:51
2002.04.18
НЕсовместимость D4 и D5


1-57743
ymin
2002-04-05 12:17
2002.04.18
Для чего нужно использовать MDI и API (в двух словах...)


3-57649
Дмитрий_Ч
2002-03-28 13:14
2002.04.18
Ну скажмите наконец!!!!


1-57665
VID
2002-04-03 23:02
2002.04.18
Чтение значения переменной, созданной другой программой


14-57851
Sasha9
2002-03-07 12:30
2002.04.18
Мой первый комп




   Наверх