1

我有一个用 .NET 4.0 VS2010 编写的 WPF 应用程序,我希望通过 clickonce 在我们的 Intranet 内部进行部署。

问题是我试图在 HKEY_LOCAL_MACHINE 中创建一个注册表项,但访问被拒绝。

我将应用程序设置为完全信任,甚至尝试断言 RegistryPermission 无济于事。

真的不可能通过clickonce分发应用程序并让它访问HKEY_LOCAL_MACHINE吗?

4

2 回答 2

2

不是 ClickOnce。

请参阅此处进行讨论。相关部分:

由于存在将应用程序暴露于安全提升攻击的风险,如果为客户端启用了 UAC,则 ClickOnce 应用程序无法请求权限提升。任何试图将其 requestedExecutionLevel 属性设置为 requireAdministrator 或highestAvailable 的ClickOnce 应用程序都不会安装在Windows Vista 上。

最后一条语句也适用于 Windows 7,因为安全模型是相同的。

最重要的是,您尝试做的事情需要提升到“以管理员身份运行”,所以不,您不能对打开了 UAC 的客户端执行您尝试做的事情。

于 2011-02-16T19:18:13.250 回答
2

此外,如果应用程序在安装时需要对本地计算机的特权访问,那么它绝对不适合 ClickOnce 部署,因为根据设计,ClickOnce 中没有机制来添加注册表项,在全局程序集缓存 (GAC) 中安装共享程序集)、安装服务等。

http://msdn.microsoft.com/en-us/magazine/cc163973.aspx

于 2011-02-16T20:30:49.303 回答