【问题标题】:Clickonce + HKEY_LOCAL_MACHINE单击一次 + HKEY_LOCAL_MACHINE
【发布时间】:2011-06-28 14:33:35
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: wpf vb.net registry clickonce cas


    【解决方案1】:

    不适用于 ClickOnce。

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

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

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

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

    【讨论】:

    • 我认为即使 UAC 关闭,ClickOnce 也无法对注册表进行任何更改。
    • 您可以更改 HKCU 下的条目,因为它们归用户所有,但不能更改适用于所有用户的 HKLM 下的条目。
    【解决方案2】:

    此外,如果应用程序需要 对本地机器的特权访问 在安装时,那肯定是 不是 ClickOnce 的候选人 部署,因为按照设计有 ClickOnce 中没有可添加的机制 注册表项,安装共享 全球大会中的大会 缓存 (GAC)、安装服务等 开。

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

    【讨论】:

    • 我认为他们不希望 ClickOnce 创建注册表项。他们正在尝试从其 ClickOnce 部署的应用程序中创建一个注册表项。
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多