【发布时间】:2013-09-22 00:44:59
【问题描述】:
我正在处理一个在单击按钮后需要管理员权限的项目。 目前使用 C# 和 VB.NET。您的回答语言取决于您,但如果使用其中一种语言会更好。 :)
我已经尝试了以下方法:
- 带有新进程的“runas”动词,但问题是它会重新启动应用程序,这意味着丢失所有当前进度和变量值。
- 正在编辑清单文件,但我“不想强制”用户以管理员身份运行应用程序。
如前所述,只有在单击按钮时才需要管理员权限。如果它从未被点击过,则不需要任何权限!
那么,无论如何,是否可以通过 UAC 来在运行时授予管理员权限。无需重新启动应用程序。
我在网上搜索过,我得到的只是上面已经提到的方法:)
注意:我在 Microsoft Security Essential 中发现了类似于我需要的东西,它能够授予管理员权限,而无需启动应用程序的新实例。
说明:在运行MSE时,默认情况下,您会在History标签中找到first strong> 选择单选框。 将此更改为任何其他选项并授予权限不会因此重新启动应用程序,维护当前状态。
非常感谢任何帮助。
【问题讨论】:
-
afaik:您无法提升正在运行的进程。如果您的应用程序“有时”要求管理员权限,然后在不关闭的情况下执行某些操作,则该应用程序通常只是在后台生成一个具有管理员权限的新进程(以执行特定任务)。
-
谢谢,有没有办法判断一个应用是启动了一个新进程还是暂时提升它自己。
标签: c# vb.net security uac elevated-privileges