C# 如何检查管理员权限

4
我想用我的C#应用程序创建一个文件夹。 我写了代码,对我来说一切都很好,但是我的朋友遇到了错误。

访问路径'myfolder'被拒绝。

那么我该如何请求管理员权限呢? 我已经查找过可以通过清单创建它...这是什么? 我在哪里可以获取清单? 对不起,我是新手。 我想要这样的东西:

告诉你的朋友以管理员身份运行你的应用程序,右键单击->“以管理员身份运行” - Tinwor
@Tinwor 这不是我的问题的原始答案,我需要通过编程解决它。 - Evaldas L.
基本上,如果您没有管理权限,则无法访问该特定文件夹。我的建议是一个解决方法,应该可以解决问题。 - Tinwor
1个回答

6

检查管理员权限的建议1 - 如果您想在检查后对代码中的bool值进行操作,则可以使用此方法

这将返回一个bool值,并允许您对isAdmin执行所需的操作。

using System.Security.Principal;

bool isAdmin;
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);

建议2-强制我的.NET应用程序以管理员身份运行 - 如果您希望它始终以管理员身份运行,则可以执行此操作,这是我建议使用的方法。

您需要修改嵌入在程序中的清单。这适用于VS2008及更高版本:Project + Add New Item,选择“Application Manifest File”。将<requestedExecutionLevel>元素更改为:

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

用户在启动程序时会收到UAC提示。

我在哪里可以找到清单文件?如何创建它?我正在使用Visual Studio 2013 for Desktop。 - Evaldas L.

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