Вниз
Скачать: CL | DM;

Проверка прав пользователя   Найти похожие ветки 

 
aldapooh   (2003-08-27 12:44) [0]

Я получаю Token с помощью LogonUser. Как проверить права этого пользователя, принадлежность к группе?
Кажется подойдут AccessCheck и CheckTokenMembership, но я не уверен и вообще в некой растерянности. Если можно пару советов или ссылок с примером желательно на Delphi.
Заранее благодарен!


 
aldapooh   (2003-08-29 10:23) [1]

Где то я наврал потому что CheckTokenMembership(Token,SID,IsMember) всегда возвращает мне IsMember = True
Может я не тот токен или сид передаю...
Любые ваши комментариии...
Спасибо!


 
clickmaker ©   (2003-08-29 12:45) [2]

Проверка, является ли юзер админом. Ф-ию несложно переделать для любой другой группы

function RunningAsAdministrator: boolean;
const
SECURITY_BUILTIN_DOMAIN_RID = $00000020;
DOMAIN_ALIAS_RID_ADMINS = $00000220;
SystemSidAuthority: SID_IDENTIFIER_AUTHORITY = (Value: (0,0,0,0,0,5));
var
hThread: THandle;
ptg: PTokenGroups;
cbTokenGroups: DWORD;
i: integer;
psidAdmin: PSID;
begin
Result := false;

if OpenThreadToken (GetCurrentThread, TOKEN_QUERY, FALSE, hThread) = FALSE then begin

if GetLastError = ERROR_NO_TOKEN then begin

if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hThread) = FALSE then
Exit;
end else
Exit;
end;

if GetTokenInformation(hThread, TokenGroups, nil, 0, cbTokenGroups) <> FALSE then
Exit;

if GetLastError <> ERROR_INSUFFICIENT_BUFFER then
Exit;

ptg := PTokenGroups(LocalAlloc(LPTR, cbTokenGroups));
if (ptg = nil) then Exit;

if GetTokenInformation (hThread, TokenGroups, ptg, cbTokenGroups, cbTokenGroups) = FALSE then
Exit;

if AllocateAndInitializeSid(SystemSidAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdmin) = FALSE then begin
LocalFree(Cardinal(ptg));
Exit;
end;

for i := 0 to ptg^.GroupCount-1 do begin

if EqualSid(ptg^.Groups[i].Sid, psidAdmin) then begin

Result := true;
break;
end;
end;

FreeSid(psidAdmin);
LocalFree(Cardinal(ptg));
end;



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

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



Память: 0.45 MB
Время: 0.015 c
14-8611
zx
2003-10-15 09:53
2003.11.03
Personal License


3-8309
Relaxxx
2003-10-13 11:57
2003.11.03
Вопрос по поводу выбора драйвера для програмирования под Оракл


1-8474
vil
2003-10-24 08:10
2003.11.03
просмотр русунков


3-8314
Newman
2003-10-11 15:44
2003.11.03
Кол-во записей


6-8570
Jacob
2003-09-05 16:21
2003.11.03
Работа с Internet Explorer ом




   Наверх