删除.NET环境变量

本文关键字:环境变量 NET 删除 | 更新日期: 2023-09-27 18:26:26

我需要将我的AWS访问密钥存储在一个私人的地方,并通过代码读取,而不是存储在其中。我正在考虑将它们存储在EnviromentVariables中,但从描述来看,不清楚它们是只保存到应用程序重新启动,还是存储在注册表中直到重写。

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.

它们是永久保存的,还是有更好的方法来拯救它们?

删除.NET环境变量

为当前进程创建的环境变量在进程结束时确实不存在。但是,存储在注册表中的当前用户或匹配项的环境变量将保留在那里,直到明确删除为止。

使用使用EnvironmentVariableTargetSetEnvironmentVariable重载来确定变量的保存位置。EnvironmentVariableTarget上的文档详细说明了在什么情况下保存或丢弃存储值:

  • Process:"当进程终止时,操作系统会破坏该进程中的环境变量。"
  • Machine/User:"当进程终止时,操作系统会销毁该进程中的环境变量。但是,注册表中的环境参数会一直存在,直到用户通过编程或操作系统工具将其删除。"

也就是说,我不相信环境变量是存储任何应该保密的访问类型的合适位置。环境变量可以由系统上的任何应用程序读取和写入,它们甚至是一个非常暴露的地方(与注册表或文件系统中隐藏的任何地方相反),因为它们可以直接用Environment对象枚举。

windows上的每个进程都有自己的环境变量副本,在进程终止后,这些变量都会消失。但是,您可以通过某些方式修改外部环境,其中一些方法在您提供的链接上点击几下即可解释:http://msdn.microsoft.com/en-us/library/vstudio/system.environmentvariabletarget%28v=vs.90%29.aspx