繁体   English   中英

管理员权限提示在C#应用程序中弹出

[英]Admin rights prompt popup in C# application

我的应用程序中有一个需要管理员权限的功能。

我想要的是当我点击按钮执行该功能时,它应该询问管理员用户名和密码。 (启动UAC对话框。同时在该按钮上显示图标。)

可能吗?

替代文字

PS:我知道通过在清单文件中进行修改来启动具有管理员权限的应用程序。

此功能也是大型程序的一部分,不能转移到单独的程序中。

您可以使用Windows API代码包中的 StockIcons.Shield获取图标

您可以使用“runas”动词运行具有管理员权限的程序而无需更改程序清单(您也可以使用此命令以管理员权限重新启动程序):

Process.Start(new ProcessStartInfo()
   {
        Verb = "runas",
        FileName = "Notepad.exe",
   });

有一个COM API,可以让你在非管理进程中创建一个具有管理员权限的COM对象,但我相信从.net应用程序中使用它是非常困难的。

实现此目的的最佳方法是使用包含需要管理权限的代码的辅助可执行文件,该代码已正确显示。 当您的应用程序需要执行需要管理权限的代码时,请调用该程序。

例如:

MyProgram.exe - 没有清单
MyProgramElevated.exe - 有一个清单,表明它需要管理员权限

MyProgram.exe需要执行提升操作时,它会执行MyProgramElevated.exe ,传递命令行参数,指示需要提升的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM