检测是否以提升的权限运行? (包括域管理员帐户)

时间:2012-12-18 14:20:18

标签: c# uac detection elevated-privileges

扩展此问题:Detect if running as Administrator with or without elevated privileges?

如果“以管理员身份运行”的帐户是本地管理员但是如果您使用域管理员帐户,则变量isProcessAdmin返回false,则投票最多的answer有效。相反,UAC在提升权限时接受域管理员作为有效帐户(在c:\ windows \中创建文件夹,以管理员身份运行等)...如何修改UACHelper.IsProcessElevated以便它也考虑到这种情况?

1 个答案:

答案 0 :(得分:3)

您需要传递domain values to IsInRole

// DOMAINNAME\Domain Admins RID: 0x200
bool isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator)
               || principal.IsInRole(0x200);