Сообщение 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?
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 =
начинает возвращать false.
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.