2013-08-04 73 views
0

我需要將我的AWS訪問密鑰存儲在私人地方,並通過代碼讀取,而不是存儲在其中。我正在考慮將它們存儲在EnviromentVariabels中,但是從描述中可以看出,它們是否只保存到應用程序重新啓動或存儲在註冊表中,直到寫完爲止。.NET環境變量被刪除

Creates, modifies, or deletes an environment variable stored in the current process

Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine.

難道他們保持良好的,甚至是有他們節省的更好的辦法?

+0

什麼是小時需求? –

回答

3

當進程創建時,爲當前進程創建的環境變量確實不存在結束。但是,存儲在註冊表中的當前用戶或matchine的環境變量將保留在那裏,直到被明確刪除。使用overload of SetEnvironmentVariable that takes an EnvironmentVariableTarget來確定您的變量將被保存的位置。

  • Process:該documentation on EnvironmentVariableTarget下存儲的值保持或丟棄什麼情況下徹底解釋說,「當進程終止時,操作系統會破壞該進程的環境變量。」 「當進程終止時,操作系統會銷燬該進程中的環境變量,但註冊表中的環境變量會一直存在,直到用戶通過編程方式或通過操作系統工具刪除它爲止。」

這就是說,我不相信一個環境變量是合適的放置到存儲都應該是保密的任何訪問種。系統上的任何應用程序都可以讀取和寫入環境變量,並且它們甚至是相當暴露的地方(而不是埋在註冊表或文件系統中的任何地方),因爲它們是an be directly enumerated with the Environment object

+0

謝謝,這正是我想知道的。 –