加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 当没有UAC弹出窗口时,无法检测用户是否使用提升的权限运行

发布时间:2020-12-15 04:24:43 所属栏目:百科 来源:网络整理
导读:我正在开发一个C#应用程序,需要检测用户是否以提升的管理员身份运行.我试过史蒂文提出的 solution. 我在5台机器上检查了解决方案,它在4台机器上工作正常. 即使我将用户帐户控制设置为始终通知我,也有一台机器永远不会显示UAC通知消息. 检查该计算机上的代码
我正在开发一个C#应用程序,需要检测用户是否以提升的管理员身份运行.我试过史蒂文提出的 solution.

我在5台机器上检查了解决方案,它在4台机器上工作正常.

即使我将用户帐户控制设置为始终通知我,也有一台机器永远不会显示UAC通知消息.

检查该计算机上的代码时,即使我选择以管理员身份运行,它也不起作用,并且方法IsProcessElevated返回false.

那台特定的机器有问题吗?

有没有办法在这种平台上确定用户是否升级?

解决方法

经过研究后,我发现从Windows 7开始,为了确定用户是否是高级管理员,您只需要检查以下内容:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole (WindowsBuiltInRole.Administrator);

(如果此选项失败,可以使用检查令牌的其余代码)
我在一些机器上测试了代码,它运行正常.

我的应用程序仅在win7及更高版本上运行,所以这个解决方案对我来说足够好了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读