Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测应用程序是否在系统帐户下运行?_C#_.net_Account - Fatal编程技术网

C# 检测应用程序是否在系统帐户下运行?

C# 检测应用程序是否在系统帐户下运行?,c#,.net,account,C#,.net,Account,我可能会使用Environment.UserName并将其与“system”进行比较,看看是否匹配,但这似乎有点骇人听闻,我不确定它在非英语环境下会如何工作。关于如何检查当前可执行文件是否作为系统帐户运行的任何其他建议?应该这样做: bool isSystem; using (var identity = System.Security.Principal.WindowsIdentity.GetCurrent()) { isSystem = identity.IsSystem; } 永

我可能会使用
Environment.UserName
并将其与“system”进行比较,看看是否匹配,但这似乎有点骇人听闻,我不确定它在非英语环境下会如何工作。关于如何检查当前可执行文件是否作为系统帐户运行的任何其他建议?

应该这样做:

bool isSystem;
using (var identity = System.Security.Principal.WindowsIdentity.GetCurrent())
{
    isSystem = identity.IsSystem;
}

永远不要比较帐户名。在本地化操作系统上,将用户名与“系统”进行比较确实会失败。

@Snoopy,这些(甚至所有指向的链接)指的是检查是否“以管理员身份运行”。进一步的阅读,它们非常接近。你使用C++或C++,因为<代码> [环境]:用户名<代码>无效。为什么你觉得它有点黑客味,如果它做了你想让它做的事情,我看不出它有什么问题。@Ramhound他告诉过你该应用程序在非英语语言包上不能正确运行。你可以对
系统
帐户做同样的事情-该帐户应该有SID
S-1-5-18