47

我知道有一些类似的问题。但我只想检查一件事。

我只想知道程序是否以管理员身份运行。我想检查一下,因为我想编辑一些受保护的文件。用户不必是管理员。我只想知道我的应用程序是否有权编辑一些在以管理员身份运行时可编辑的安全文件。

4

2 回答 2

112

这将返回一个 bool 有效

using System.Security.Principal;

bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
于 2011-05-10T16:32:00.040 回答
12

这是@atrljoe 的答案,它使用最新的 C# 变成了一条线:

using System.Security.Principal;

static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
于 2015-11-12T23:51:38.847 回答