информационная безопасность
без паники и всерьез
 подробно о проекте
Страшный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А чем GetUserName не нравится? 10.04.03 13:42  Число просмотров: 1308
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
<programming>
[Win32] admin 29.03.03 12:00  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как узнать (WinXP) что текущий юзер - Администратор?
А чем GetUserName не нравится? 10.04.03 13:42  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
[Win32] Из реестра 29.03.03 14:35  
Автор: zonny <Sasha> Статус: Member
<"чистая" ссылка>
[Win32] Из реестра 10.04.03 09:59  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Подробнее можно? ;))))))
[Win32] Из реестра 10.04.03 13:31  
Автор: zonny <Sasha> Статус: Member
Отредактировано 10.04.03 13:33  Количество правок: 1
<"чистая" ссылка>
> Подробнее можно? ;))))))
Если адрес в реестре, то вот для w2k
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
Там ключ Logon User Name . Он то и содержит имя пользователя.
[WinNT?] Я гонец из Пензы ;-))))))) 11.04.03 20:22  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 12.04.03 06:39  Количество правок: 3
<"чистая" ссылка>
> > Подробнее можно? ;))))))
> Если адрес в реестре, то вот для w2k
> HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
> \Explorer
> Там ключ Logon User Name . Он то и содержит имя
> пользователя.

И всё-таки, IMHO, не надо извращений... Я думаю, что автор корневого поста хотел узнать, имеет ли процесс, в котором исполняется некий код, административные привилегии...

В MSDN описано как минимум два метода. В первом открываем Token процесса и долго с ним мучаемся... Метод этот самый правильный и самый трудный в плане кодирования, но единожды закодив...

Второй метод прост, как выстрел из пистолета. Вот пример функции на Delphi:
Uses WINSVC;
----------
Function IsUserAdmin(Const aHostName: String): Bool;
Var SCHndl: THandle;
Begin
  SCHndl := OpenSCManager(PChar(aHostName), Nil, SC_MANAGER_ALL_ACCESS);
  Result := SCHndl <> 0;
  If Result Then 
    CloseServiceHandle(SCHndl)
  Else 
    If GetLastError <> ERROR_ACCESS_DENIED Then
      RaiseLastWin32Error;
End;

---


Суть трюка в том, что NT сама проверит вас на «административность», если вы запросите такой высокий уровень доступа к базе системных служб. Более того, если указать aHostName (не пустой), то можно проверить свои силы на удалённой машине ;-)
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach