Windows表单 - C# - 请求管理员权限

3

可能是重复的问题:
如何在Windows 7上强制C#应用程序以管理员身份运行

我正在构建一个WinForms C#应用程序,并且需要它请求管理员权限,以便我可以复制和打开C:\目录。

这可行吗?

我将要使用的代码(如果有人需要)是这样的:

if (!Directory.Exists("C:\\smm"))
{
    Directory.Create("gg");
}

或者类似的东西,但我肯定需要管理员权限。

有人知道我该怎么做吗?


尝试这个:https://dev59.com/YXI-5IYBdhLWcg3wFkOO - Illuminati
正如Hans Passant所描述,使用清单文件。 - Rosmarine Popcorn
1个回答

3
您需要在项目中启用ClickOnce安全设置,然后更改应用程序清单以要求管理员权限。这将导致Windows在进程启动时显示UAC提升提示,以便用户将您的程序提升为管理员。
要启用ClickOnce,请进入项目属性,选择左侧的“安全”选项卡,然后选中“启用ClickOnce安全设置”框。然后进入项目的“Properties”目录,并打开app.manifest文件。在该文件中,有一行设置所需权限的代码。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />

你可以按照以下方式使其需要管理员权限:

您可以像这样设置:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这将使得在进程启动时需要管理员权限。


4
仅当禁用ClickOnce时,我才能使用该功能。如果不禁用,构建时会出现以下错误:ClickOnce不支持请求执行级别“requireAdministrator” - Otiel
对于某些项目来说似乎是这样。不确定其中的原因。 - Polynomial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接