我的VB.NET應用程序需要在本地機器中存儲文本文件。每次應用程序啓動時,都需要將信息寫入該文本文件,而不管機器中的任何用戶。哪裏可以放置普通用戶數據而沒有管理權限?
1)註冊表無法使用。用戶無權寫入HKEY_LOCAL_MACHINE \ Software。 HKEY_CURRENT_USER \ Software不是首選,因爲用戶第一次打開應用程序時需要提供許可證解鎖密鑰。我只想讓許可證解鎖密鑰在任何用戶安裝後提供一次。許可證解鎖密鑰將寫入文本文件。
2)我試過Environment.SpecialFolder.CommonApplicationData
並創建了一個文件夾來存儲文本文件。當管理員安裝它並且管理員可以打開應用程序時,它運行良好。一旦用戶在同一臺機器上登錄,應用程序管理顯示啓動畫面,但它停止工作。沒有錯誤消息出現,並且它在任務管理器的詳細信息選項卡中消失。我仍然可以在Environment.SpecialFolder.CommonApplicationData
中看到文本文件。
3)我檢查過other question之前與此問題有關。其中一條評論建議隔離存儲。但是,當我使用獨立存儲時,我不確定是否會得到與上面(2)相同的結果。
問題:
1)應該在哪裏許可文件被存儲在本地的機器,這是通用於所有用戶,所有用戶應該寫,讀權限許可文件?
如果許可證密鑰在安裝時被寫出(具有管理權限),任何用戶都應該能夠從CommonApplicationData中*讀*而沒有問題。或者,您可以將它保存到公用文件夾,因爲刪除它不符合他們的利益 – Plutonix
'CommonApplicationData'是正確的地方,雖然您可以在第一次創建文件時更改權限,但您不應該將文件世界可寫,除非你真的需要。您可能只需修復導致應用程序崩潰的錯誤,最可能的原因是在打開文件時無意中請求寫入訪問。 –
@HarryJohnston,應用程序必須在啓動時寫入文本文件。那麼,當任何用戶登錄並啓動我的應用程序時,CommonApplicationData是我的應用程序讀取和寫入文本文件的正確位置? – hunterex