Информация об изменениях

Сообщение Re[4]: Детект прав админа у пользователя от 29.03.2024 16:43

Изменено 29.03.2024 16:45 VladD2

Re[4]: Детект прав админа у пользователя
Здравствуйте, 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, вроде работает. А что не так с LOGON32_LOGON_INTERACTIVE?
Re[4]: Детект прав админа у пользователя
Здравствуйте, 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.