Привилегия администратора C # - проверка - PullRequest
34 голосов
/ 10 мая 2011

Я знаю, что есть несколько похожих вопросов.Но я хочу проверить только одну вещь.

Я только хочу знать, запущена ли программа от имени администратора.Я хочу проверить это, потому что я хочу редактировать некоторые защищенные файлы.Пользователь не должен быть администратором.Я только хочу знать, есть ли у моего приложения права на редактирование некоторых защищенных файлов, которые можно редактировать при запуске от имени администратора.

Ответы [ 2 ]

83 голосов
/ 10 мая 2011

Это вернет действительный бул

using System.Security.Principal;

bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
6 голосов
/ 13 ноября 2015

Вот ответ @ atrljoe, превращенный в однострочник с использованием последней версии C #:

using System.Security.Principal;

static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
...