请求管理员权限以编辑系统文件

时间:2014-02-23 11:03:38

标签: c# privileges sharpziplib

C#的新手,我正在开发visual studio中的Windows窗体应用程序。该应用使用ICSharpCode.SharpZipLib库来更新zip的内容。

当zip文件位于非系统分区内时,比如D:\myzip.zip,文件会正确更新。但是,如果zip在系统分区中,C:\myzip.zip该应用程序将返回错误; Could not find file C:\myzip.zip即使文件在那里!

这与管理员权限有关,因为当我以管理员身份运行应用程序时,它可以正常工作。

问题是;我怎么能默认启用这些权限?

2 个答案:

答案 0 :(得分:3)

您可以添加应用清单,以确保您的应用以管理员身份运行(msdn)。

将以下代码添加到清单文件中:

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

逐步添加应用清单:

  1. 在解决方案资源管理器中右键单击项目。
  2. 点击添加新项
  3. 查找并选择应用程序清单文件
  4. enter image description here

    修改应用清单文件:

     <?xml version="1.0" encoding="utf-8"?>
        <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
          <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
            <security>
              <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">       
                <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
              </requestedPrivileges>
            </security>
          </trustInfo>
    
          <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
            <application>    
            </application>
          </compatibility>
        </asmv1:assembly>
    

答案 1 :(得分:-1)

你想在你的计算机上默认启用它吗? 因为在其他计算机上你不能,这就是什么安全性