我有一个用.NET 4.0编写的WPF应用程序,VS2010是我想通过clickonce内部部署在我们的intranet上的。
问题是,我试图在HKEY_LOCAL_MACHINE中创建一个注册表项,并且拒绝访问。
我已经设置了完全信任的应用程序,甚至尝试断言RegistryPermission都没有效果。
真的不可能通过clickonce发布应用程序并让它访问HKEY_LOCAL_MACHINE吗?
发布于 2011-02-16 19:18:13
不是用ClickOnce。
有关讨论,请参见这里。有关部分:
由于存在将应用程序暴露于安全提升攻击的风险,如果为客户端启用了UAC,则ClickOnce应用程序无法请求权限提升。任何试图将其ClickOnce属性设置为requireAdministrator或highestAvailable的requestedExecutionLevel应用程序都不会在Windows上安装。
最后一条语句也适用于Windows 7,因为安全模型是相同的。
底线是你想要做的事情需要提升来“以管理员的身份运行”,所以不,你不能对那些打开UAC的客户端做你想做的事情。
发布于 2011-02-16 20:30:49
此外,如果应用程序在安装时需要对本地机器的特权访问,那么它肯定不是ClickOnce部署的候选对象,因为按照设计,ClickOnce中没有添加注册表项、在全局程序集缓存(GAC)中安装共享程序集、安装服务等机制。
http://msdn.microsoft.com/en-us/magazine/cc163973.aspx
https://stackoverflow.com/questions/5021021
复制相似问题