打开第二张表格时是否可以要求管理员权限?

时间:2014-10-02 10:53:47

标签: c# winforms

我知道您可以创建清单文件来指定整个应用程序的访问级别管理员。但它是否可能只需要特定形式?

4 个答案:

答案 0 :(得分:1)

高程是该过程的属性。所有表单都在同一进程中执行。询问如何在具有不同权限的同一进程中执行不同的表单是没有意义的。这没什么意义。

因此,如果您需要部分应用程序在没有提升的情况下运行,并且其中一部分要提升,那么您需要两个进程。别无选择。

实现这一目标的干净方法是安排应用程序的提升部分通过进程外COM服务器提供。这样,您就可以使用COM Elevation Moniker来提升应用的那一部分。

答案 1 :(得分:0)

This code allows you to test if a user is admin.如果您创建了希望限制的表单窗口,则需要调用此代码。

答案 2 :(得分:0)

不确定存在类似的东西。我通过重新启动应用程序手动完成了类似的操作。

启动您的应用程序,无需管理员访问权当用户执行需要管理员访问权限的操作时,请查看应用程序是否以管理员身份运行(它不会像我们正常启动那样)?如果不是,请保存程序状态并使用verb =" runas"重启应用程序。和commdandline表明要采取的行动。

重新启动应用程序时,假设用户已通过UAC提供管理员访问权限。处理命令行,恢复保存的程序状态,并将用户导航到他离开的位置。

答案 3 :(得分:0)

看看此示例UAC self-elevation

此示例演示了如何检查当前流程的权限级别,以及如何通过同意UI明确同意来自我提升流程。