繁体   English   中英

从CD运行时需要管理员权限

[英]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加载时,设置将恢复为特权较少的模式。

您可以在MSDN上的CAS 找到更多信息。

您可以通过添加和配置app.manifest文件来请求特权。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM