Re[4]: Детект прав админа у пользователя
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.24 16:43
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Есть WindowsIdentity newId. Вот по нему и надо сделать new WindowsPrincipal и у него IsInRole


PD>WindowsIdentity newId = new WindowsIdentity(safeTokenHandle.DangerousGetHandle());

PD>WindowsPrincipal principal = new WindowsPrincipal(newId);
PD>return principal.IsInRole(WindowsBuiltInRole.Administrator);

Так заработало. Но только с локальной учёткой. С доменной не работает.

С если заменить LOGON32_LOGON_BATCH обратно на LOGON32_LOGON_INTERACTIVE, вроде работает. Но при этом\ bool isAdmin =
windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);

начинает возвращать false.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 29.03.2024 16:45 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.