Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.148.71] |
|
Сообщ.
#1
,
|
|
|
Здраствуйте!
Вот имею некий код: private bool CheckPermissionsAccess() { AppDomain domain = Thread.GetDomain(); domain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal user = (WindowsPrincipal)Thread.CurrentPrincipal; return user.IsInRole(WindowsBuiltInRole.Administrator) || user.IsInRole(WindowsBuiltInRole.PowerUser); } Но он у меня не работает на Windows Vista - всегда возвращает false подскажите пожалуста альтернативу |
Сообщ.
#2
,
|
|
|
Попробуй так:
WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal (identity); return principal.IsInRole (WindowsBuiltInRole.Administrator); Добавлено Цитата MSDN В Windows Vista привилегии пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. При попытке выполнить задачу, для которой требуются административные привилегии, можно динамически повысить уровень своей роли с помощью диалогового окна "Согласие". Программный код, выполняющий метод IsInRole, не отображает диалоговое окно "Согласие". Если пользователь имеет роль обычного пользователя, код возвращает результат false, даже если пользователь находится во встроенной группе "Администраторы". Перед запуском кода можно повысить уровень своих привилегий, щелкнув правой кнопкой мыши значок приложения и указав, что требуется выполнить запуск от имени администратора. |
Сообщ.
#3
,
|
|
|
не работает..
также не работает этот тестовый код: public bool isAdministrator() { WindowsPrincipal user = (WindowsPrincipal)Thread.CurrentPrincipal; // If the user is in the administrators group. if (user.IsInRole("Administrators")) { return true; } // Return false because the user isn't an administrator, // or authenticated. return false; } Все при том что проверил десятый раз что на висте есть группа "Administrators" и текущий пользователь ей пренадлежит. Ех, жуть эта виста |
Сообщ.
#4
,
|
|
|
Цитата 2005fs @ Все при том что проверил десятый раз что на висте есть группа "Administrators" и текущий пользователь ей пренадлежит. теперь читаем то, что я указал в качестве цитаты с MSDN |