单个方法的管理员权限

dog*_*ose 5 c# security

我目前正在开发ApplicationLauncher/Autoupdater.因此,要将应用程序安装/更新为"Program Files",我需要请求管理员权限.

好吧,因为如果找到新版本,更新程序只需要写一些内容,我试图仅在发现新版本时请求权限.

在应用程序启动之前,每次都会执行更新程序,因此请求"每次"管理员都没有解决方案......

我搜索了很多,发现了以下内容:

[PrincipalPermission(SecurityAction.Demand, Role = @"Administrators")]
    private void InstallOrUpdate(AppItem appItem)
Run Code Online (Sandbox Code Playgroud)

但我想尝试这个,更新程序抛出SecurityException ...

申请主要许可失败.

我究竟做错了什么?

最好的问候,dognose

Ree*_*sey 3

一旦应用程序运行,您就无法提升其权限。为了请求管理员角色,需要在可执行文件启动时完成。

最好的选择是让更新程序触发不同的可执行文件来执行此InstallOrUpdate操作,或者重新运行自身(可能使用不同的命令行参数)并请求提升权限。