朋友我正在处理一个名为computer scanner
的项目,但是当我运行我的代码以扫描我的硬盘时,它给了我一个例外" Access Denied to System Volume Information Folders
"还有一些其他文件夹具有相同的行为我无法访问它们,在从互联网上研究这个例外之后,我必须了解添加" Manifest File"并将其更改为"要求管理员"对于该程序将作为一个管理员运行但不幸的是没有发生这样的事情。
我正在使用一些代码,这些代码允许我以管理员身份运行我的代码,但仍然向我显示相同的异常。
请提前感谢我提供紧急帮助:)
WindowsIdentity CurrentIdentity = WindowsIdentity.GetCurrent();
WindowsPrincipal CurrentPrincipal = new WindowsPrincipal(CurrentIdentity);
if (CurrentPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
{
//Scanning Code will Execute
}
答案 0 :(得分:2)
你根本不能在代码中给自己管理员权限,这太荒谬了!您必须通过RightClick->run as admin
以管理员身份运行visual studio
并且您的最终申请也必须以管理员身份运行。
使用这个: How do I force my .NET application to run as administrator?
以强制用户以管理员身份运行。
这不会使应用程序以管理员身份运行,但会提升用户,以便应用程序要求用户在应用程序启动期间以管理员身份运行
答案 1 :(得分:1)
您可以使用ClickOnce安全设置创建清单,然后将其禁用:
Right click on the Project -> Properties -> Security -> Enable ClickOnce Security Settings
单击它后,将在项目的属性文件夹下创建一个名为app.manifest的文件,创建后,您可以取消选中“启用ClickOnce安全设置”选项
打开该文件并更改此行:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
收件人:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
这将使该程序需要管理员权限。