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

Вниз

Как определить имеет ли Юзер права администратора?   Найти похожие ветки 

 
Serg Guk   (2004-03-18 16:16) [0]

Привет, всем.  Ну собственно subj....
Заранее спасибо  :))


 
serge35   (2004-03-18 17:12) [1]

Администратора чего?


 
Алхимик ©   (2004-03-18 17:21) [2]

try
  <попытка сделать административное действие>
  UserIsAdmin := true;
except
  UserIsAdmin := false;
end;

:)


 
Игорь Шевченко ©   (2004-03-18 17:27) [3]

const
 SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =
   (Value: (0, 0, 0, 0, 0, 5));
 SECURITY_BUILTIN_DOMAIN_RID = $00000020;
 DOMAIN_ALIAS_RID_ADMINS = $00000220;

function IsAdmin: Boolean;
var
 hAccessToken: THandle;
 ptgGroups: PTokenGroups;
 dwInfoBufferSize: DWORD;
 psidAdministrators: PSID;
 x: Integer;
 bSuccess: BOOL;
begin
 Result   := False;
 bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
   hAccessToken);
 if not bSuccess then
 begin
   if GetLastError = ERROR_NO_TOKEN then
     bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
       hAccessToken);
 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 x := 0 to ptgGroups.GroupCount - 1 do
       if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
       begin
         Result := True;
         Break;
       end;
     {$R+}
     FreeSid(psidAdministrators);
   end;
   FreeMem(ptgGroups);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if isAdmin then
   ShowMessage("Logged in as Administrator");
end;



http://www.swissdelphicenter.ch/torry/showcode.php?id=189

serge35   (18.03.04 17:12)

Скучно, да ?


 
Serg Guk   (2004-03-19 15:26) [4]

Благодарю, Игорь, как раз то что надо..  :))



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

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

Наверх




Память: 0.47 MB
Время: 0.023 c
7-1074774903
Дмитрий Смирнов
2004-01-22 15:35
2004.04.04
отображенире данных из другого потока


7-1075127727
zamkom
2004-01-26 17:35
2004.04.04
Работа с СОМ портом


1-1078996913
Дас Виндовс 45
2004-03-11 12:21
2004.04.04
Сортировка массива


1-1079341445
Max75
2004-03-15 12:04
2004.04.04
Создание компонента на форме во время выполнения программы


14-1078526258
Мазут Береговой
2004-03-06 01:37
2004.04.04
Что скажете вот на это? Читайте по ссылке...