2011-02-16 34 views
1

我有一個WPF應用程序,用.NET 4.0,VS2010編寫,我希望通過我們內部網上的clickonce進行部署。Clickonce + HKEY_LOCAL_MACHINE

問題是我試圖在HKEY_LOCAL_MACHINE中創建一個註冊表項,並且我正在訪問被拒絕。

我有應用程序設置爲完全信任,甚至嘗試斷言RegistryPermission無濟於事。

是否真的不可能通過clickonce發佈應用程序並讓它訪問HKEY_LOCAL_MACHINE?

回答

2

不適用於ClickOnce。

請參閱here進行討論。相關部分:

由於存在將應用程序暴露給安全升級攻擊的風險,如果爲客戶端啓用UAC,ClickOnce應用程序無法請求權限提升。任何嘗試將其requestedProecutionLevel屬性設置爲requireAdministrator或highestAvailable的ClickOnce應用程序都不會在Windows Vista上安裝。

上一條語句也適用於Windows 7,因爲安全模型是相同的。

底線是,你正在嘗試做的事情需要提升爲「以管理員身份運行」,所以不,你不能做你想要做的事情,打開UAC的客戶端。

+0

我不認爲的ClickOnce將能夠做任何更改,即使UAC被關閉註冊表。 – 2011-02-16 20:28:46

+2

您可以更改HKCU下的條目,因爲它們是由用戶所有,但不適用於適用於所有用戶的HKLM下的條目。 – RobinDotNet 2011-02-17 09:46:05

2

此外,如果一個應用程序需要在安裝時 特權訪問到本地機器 ,那麼它肯定是 不爲ClickOnce 部署的候選人,因爲設計有 中的ClickOnce沒有機制來添加 註冊表條目,在全局程序集 緩存(GAC)上安裝共享 程序集,安裝服務等 。

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