bsz*_*zom 8 c# security wpf hosts-file elevated-privileges
我正在编写一个小的WPF实用程序来管理hosts文件中的条目以用于开发目的.您可能知道主机文件受较新操作系统(Win 7/2008/Vista)的保护.
我添加了一个清单,以我的应用程序设置requestedExecutionLevel为"requireAdministrator",详见这里(用"最简单的方式"),并在相关的问题在这里.
不幸的是,这对我没用.启动应用程序时没有提升提示,并且为hosts文件调用File.AppendText仍会导致抛出System.UnauthorizedAccessException:"访问路径'C:\ Windows\System32\drivers\etc\hosts'是拒绝".
HostsChanger.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="HostsChanger" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
转述我之前的评论,变成一个答案:
ho1给出的答案包含一个app.manifest,它与我正在工作的应用程序完全相同,并且elevation正在为它工作。此处的区别在于文件名是“app.manifest”,项目选项“Manifest”(在“应用程序”选项卡上)指向它。