C#管理员权限 - 检查

时间:2011-05-10 16:27:40

标签: c# .net privileges administrator rights

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

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

2 个答案:

答案 0 :(得分:82)

这将返回一个有效的bool

using System.Security.Principal;

bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}

答案 1 :(得分:5)

在这里,@ atrljoe的答案变成了使用最新C#的一个班轮:

using System.Security.Principal;

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