2013-08-04 74 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

谢谢,这正是我想知道的。 –