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

c#从UAC管理员级别进程降低权限启动进程

发布时间:2020-12-15 04:14:43 所属栏目:百科 来源:网络整理
导读:我的应用程序有一个主要问题.我有一个app updater作为单独的exe文件.当更新可用时,更新程序会执行更新,并在进程完成时启动我的应用程序.主要问题是 – 应用程序安装在程序文件文件夹中,因此更新程序需要UAC管理员权限,这没关系,但是当我需要运行我的应用程序
我的应用程序有一个主要问题.我有一个app& updater作为单独的exe文件.当更新可用时,更新程序会执行更新,并在进程完成时启动我的应用程序.主要问题是 – 应用程序安装在程序文件文件夹中,因此更新程序需要UAC管理员权限,这没关系,但是当我需要运行我的应用程序时,更新程序需要以普通用户身份运行它,因为如果它以管理员身份运行和drop不起作用(不是应用程序问题,UAC阻止它).我尝试了几种不同的解决方案,甚至是这一种:
How to run NOT elevated in Vista (.NET)

它没有帮助我 – 我的应用程序是以管理员身份运行的.

解决方法

你最好避免从升高的过程开始一个非升级的过程.这是棘手的部分,容易出错.

这种方法更好:

>您的更新程序最初以非提升的应用程序启动,其清单具有asInvoker级别.
>启动时,它使用runas谓词以提升的权限重新启动自身,并传递命令行参数以指示它.此实例执行更新并返回.
>再次出现非提升的更新程序,并使用在步骤1中启动第一个更新程序实例的相同非提升用户令牌启动应用程序.

非常简单和强大.

(编辑:李大同)

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

    推荐文章
      热点阅读