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

Вниз

Как узнать права юзера?   Найти похожие ветки 

 
Dmitriy Volkov   (2004-05-06 23:47) [0]

Здравствуйте!

Подскажите, плз, где можно почитать о том, как узнать права юзера в WinXP. Ну или здесь напишите. А то чё-то роюсь по сайту, а найти не могу.

Спасибо!


 
Игорь Шевченко ©   (2004-05-07 00:22) [1]


> где можно почитать о том, как узнать права юзера в WinXP


Какого юзера ? Если текущего, то OpenProcessToken + GetTokenInformation


 
Dmitriy Volkov   (2004-05-07 08:35) [2]

Да, текущего. Спасибо! :)


 
xShadow ©   (2004-05-07 09:20) [3]

function IsAdmin: Boolean;
const
SECURITY_NT_AUTHORITY : TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5));
SECURITY_BUILTIN_DOMAIN_RID                     = $00000020;
DOMAIN_ALIAS_RID_ADMINS                         = $00000220;
var
hAccessToken       : THandle;
ptgGroups          : PTokenGroups;
dwInfoBufferSize   : DWORD;
psidAdministrators : PSID;
i                  : Integer;
bSuccess           : BOOL;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
begin
  Result := True;
  Exit;
end;

Result := False;
bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken);
if not bSuccess then
begin
  if GetLastError = ERROR_NO_TOKEN then
  begin
    bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken);
  end;
end;
if bSuccess then
begin
  GetMem(ptgGroups, 1024);
  bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize);
  CloseHandle(hAccessToken);
  if bSuccess then
  begin
    AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators);
    {$R-}
    for i := 0 to ptgGroups.GroupCount-1 do
    begin
      if EqualSid(psidAdministrators, ptgGroups.Groups[i].Sid) then
      begin
        Result := True;
        Break;
      end;
    end;
    {$R+}
    FreeSid(psidAdministrators);
  end;
  FreeMem(ptgGroups);
end;
end;

Вот к примеру код проверяет текущего пользователя входит ли он в группу админов.


 
Dmitriy Volkov   (2004-05-09 13:43) [4]

Ага, спасибо :)



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

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

Наверх




Память: 0.47 MB
Время: 0.051 c
6-1082539186
Остап
2004-04-21 13:19
2004.06.13
Proxy in IE


1-1086167834
Aleksandr.
2004-06-02 13:17
2004.06.13
В cm_MouseEnter вообще координаты курсора мыши передаются?


8-1079414422
WM.DIGGER
2004-03-16 08:20
2004.06.13
Как сграбить экран ... ?


14-1085777429
Yorick
2004-05-29 00:50
2004.06.13
Кто-где живет?


6-1082553857
Multy
2004-04-21 17:24
2004.06.13
Подсчёт трафика