Здравствуйте, m2user, Вы писали:
M>Но мне кажется, UserClaims проверить проще будет.
Да, согласен. Просто как-то не надежно выглядит.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Поэтому если нужно узнать, является ли юзер админом из программы, запущенной без прав админа, то можно, конечно, сделать в ней logonUser с админовским входом как в прошлый раз
LogonUser подразумевает ввод данных логина. Это не то.
PD>Либо посмотри тут
PD>https://stackoverflow.com/questions/3600322/check-if-the-current-user-is-administrator
PD>IsCurrentUserAdmin
PD>или
PD>IsCurrentUserInAdminGroup
Это то, что предложил m2user
здесьАвтор: m2user
Дата: 05.06 20:22
. Похоже действительно самый простой способ. У нас был рабочий вариант, но он в первый раз втыкал на несколько секунд.
Здравствуйте, VladD2, Вы писали:
PD>>IsCurrentUserInAdminGroup
VD>Это то, что предложил m2user здесьАвтор: m2user
Дата: 05.06 20:22
. Похоже действительно самый простой способ. У нас был рабочий вариант, но он в первый раз втыкал на несколько секунд.
Видимо, да. Единственное, что тут можно сделать — проверить, принадлежит ли юзер к группе админов.
Если нет домена, то все должно работать.
Если же он есть, то может быть сложнее. Он может быть членом Domain Admins, а она в свою очередь входит в группу локальных админов после загрузки компьютера.
Поэтому по ссылке выше в одном из примеров делаются все проверки
return authGroups.Any(principal =>
principal.Sid.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid) ||
principal.Sid.IsWellKnown(WellKnownSidType.AccountDomainAdminsSid) ||
principal.Sid.IsWellKnown(WellKnownSidType.AccountAdministratorSid) ||
principal.Sid.IsWellKnown(WellKnownSidType.AccountEnterpriseAdminsSid));