2010-03-29 41 views
1

我正在嘗試向註冊表中寫入密鑰。它適用於Windows XP,但在Windows 7/Vista上失敗。「請求的註冊表訪問不被允許。」在Windows 7/Vista上

下面的代碼會拋出一個安全異常,其描述爲「請求的註冊表訪問不被允許」。

RegistryKey regKey = 
    Registry.LocalMachine.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true); 

我意識到這與UAC設置有關,但我找不出理想的解決方法。

我不想分出另一個進程,甚至可能甚至不想請求任何憑據。只是希望它能像在Windows XP上一樣工作。我修改了清單文件並刪除了requestedExecutionLevel節點。這似乎有伎倆。

是否有任何其他可能的解決方法,「清單」解決方案是否存在嚴重缺陷?

回答

1

您無權寫入全局機器的全局密鑰。你可以將數據存儲在當前用戶密鑰下嗎?這不應該需要管理員權限。

+0

我意識到這一點。我希望當前機器上的所有用戶都能讀/寫這個註冊表項。 – Trainee4Life 2010-03-29 09:32:33

+0

在這種情況下,應用程序必須以管理員身份運行。 – Giorgi 2010-03-29 11:02:19

+0

請參閱http://stackoverflow.com/questions/562350/requested-registry-access-is-not-allowed – CSharper 2010-08-28 14:45:12

0

我也有同樣的問題,你和我改變LOCALMACHINE到CurrentUser這樣

RegistryKey regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true); 
相關問題