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

Вниз

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

 
RuCosinus   (2010-08-12 18:17) [0]

Добрый вечер.

Есть некий сетевой диск, на котором лежит некая программа. При запуске она должна проверять, является ли запустивший пользователь администратором домена в котором запустили приложение.

Если я правильно понимаю, то для этого можно попробовать произвести некое безобидное действо, выполнение которого разрешено только администраторам домена, и смотреть исключения.
Подскажите, правильно ли я думаю и какое действие нужно поробовать выполнить?


 
KilkennyCat ©   (2010-08-12 18:21) [1]


> произвести некое безобидное действо, выполнение которого
> разрешено только администраторам домена

ага, например, запуск этой самой программы.


 
RuCosinus   (2010-08-12 18:22) [2]

Как всегда, ищешь, ищешь и ничего... Стоит огласить вопрос, как все волшебным образом появляется.

Прошу прощения, все нашел.


 
RuCosinus   (2010-08-12 18:23) [3]


> KilkennyCat ©   (12.08.10 18:21) [1]

Не, программа лежит на расшаренном для всех диске )


 
KilkennyCat ©   (2010-08-12 18:25) [4]

какая разница, где она лежит? если так считать, то я на флэшке могу таскать кучу утилит, типа регедит, и пофиг, что я не админ, да?


 
KilkennyCat ©   (2010-08-12 18:27) [5]

да и ваще, расшарить диск можно только для админов.


 
RuCosinus   (2010-08-12 18:29) [6]


> KilkennyCat ©

А.. Я понял. Нет, там смысл в другом - если админ, то добавляются некоторые функции, обычным пользователям недоступные.


 
KilkennyCat ©   (2010-08-12 18:31) [7]

а... ну тогда манифестом можно.


 
RuCosinus   (2010-08-12 18:43) [8]

Я вот такое нашел, вроде работает... А манифестом - это как, не расскажите?

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
x: integer;
bSuccess: BOOL;
hAccessToken: THandle;
ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD;
psidAdministrators: PSID;
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;


 
KilkennyCat ©   (2010-08-12 19:02) [9]

http://msdn.microsoft.com/en-us/library/bb756929.aspx



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

Форум: "Начинающим";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
6-1229087355
Ст
2008-12-12 16:09
2010.11.07
Tcpserver узнать ip клиента


2-1281938546
mefodiy
2010-08-16 10:02
2010.11.07
Сравнение "runtime" и "design time"


2-1281731884
Andrey K
2010-08-14 00:38
2010.11.07
Как через родителя обратится к компоненту.


15-1280428521
Riply
2010-07-29 22:35
2010.11.07
Детектирование исполнителя путем поверхносного анализа :)


15-1280066430
Ламо777
2010-07-25 18:00
2010.11.07
Автоматизированное тестирование





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский