如何检查我的程序是否以admin / sudo身份运行?我正在制作一个跨平台的C#程序,需要以管理员身份运行才能运行。它将在Windows,macOS和Linux上运行,因此我不知道.NET Core似乎没有像我发现的仅针对.NET Framework / Windows的其他解决方案那样拥有命名空间。 / p>
答案 0 :(得分:-1)
试试这个:
static class RootChecker
{
[DllImport("libc")]
public static extern uint getuid();
public static bool IsRoot()
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
bool isAdmin;
using (var identity = WindowsIdentity.GetCurrent())
{
var principal = new WindowsPrincipal(identity);
isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return isAdmin;
}
else
{
return getuid() == 0;
}
}
}