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

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

概述我的应用程序有一个主要问题.我有一个app& updater作为单独的exe文件.当更新可用时,更新程序会执行更新,并在进程完成时启动我的应用程序.主要问题是 – 应用程序安装在程序文件文件夹中,因此更新程序需要UAC管理员权限,这没关系,但是当我需要运行我的应用程序时,更新程序需要以普通用户身份运行它,因为如果它以管理员身份运行和drop不起作用(不是应用程序问题,UAC阻止它).我尝试了几种不 我的应用程序有一个主要问题.我有一个app& updater作为单独的exe文件.当更新可用时,更新程序会执行更新,并在进程完成时启动我的应用程序.主要问题是 – 应用程序安装在程序文件文件夹中,因此更新程序需要UAC管理员权限,这没关系,但是当我需要运行我的应用程序时,更新程序需要以普通用户身份运行它,因为如果它以管理员身份运行和drop不起作用(不是应用程序问题,UAC阻止它).我尝试了几种不同的解决方案,甚至是这一种:
How to run NOT elevated in Vista (.NET)

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

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

这种方法更好:

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

非常简单和强大.

总结

以上是内存溢出为你收集整理的c#从UAC管理员级别进程降低权限启动进程全部内容,希望文章能够帮你解决c#从UAC管理员级别进程降低权限启动进程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存