Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
8-1068202473
Maxon
2003-11-07 13:54
2004.04.04
Windows Media Player


1-1079610471
Anka
2004-03-18 14:47
2004.04.04
Поле - E-mail


3-1078832010
wild_arg
2004-03-09 14:33
2004.04.04
Возможно ли: "Insert into @Param1..."?


1-1079099315
}|{yk
2004-03-12 16:48
2004.04.04
Странно. Почему Delphi это не хавает?


1-1079689274
ashnurov
2004-03-19 12:41
2004.04.04
ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский