[英]Requiring administrator privileges when running from CD
我有一个Windows C#应用程序,需要管理员权限。 我创建了一个app.manifest修改它添加
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
当我直接从PC运行它时,一切正常,操作系统提示我UAC,一切正常。 现在,如果我将所有文件都写到CD(或iso映像)中,则某些命令无法以管理特权运行,从而导致错误。 特别是Directory.Delete,Directory.Copy(带有递归参数)不起作用。
我还尝试包装默认的Delete方法,例如:
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public static void delete(string source, bool recursive)
{
if (Directory.Exists(source))
{
Directory.Delete(source, recursive);
}
}
但是我收到“请求主体权限失败。” 错误。
还有其他我想念的吗? 如果在我的PC的目录中运行或从cd运行,为什么它应该有所不同?
谢谢,法比奥
.NET中有一个称为CAS(代码访问安全性)的东西。 当来自其他源时,CLR对您的程序的处理方式不同(因此,本地Intranet,Internet和本地磁盘的处理方式也不同)
从CD加载时,设置将恢复为特权较少的模式。
您可以通过添加和配置app.manifest文件来请求特权。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.