gpt4 book ai didi

c# - .NET 环境变量是否被删除

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:51 24 4
gpt4 key购买 nike

我需要将我的 AWS 访问 key 存储在某个私有(private)位置,并通过代码读取,而不是存储在其中。我正在考虑将它们存储在 EnviromentVariabels 中, 但从描述来看,不清楚它们是只保留到应用程序重新启动,还是存储在注册表中直到被覆盖。

创建、修改或删除存储在当前进程中的环境变量

创建、修改或删除存储在当前进程或为当前用户或本地计算机保留的 Windows 操作系统注册表项中的环境变量。

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

最佳答案

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

使用 overload of SetEnvironmentVariable that takes an EnvironmentVariableTarget确定变量的保存位置。 documentation on EnvironmentVariableTarget详细解释在什么情况下存储的值被保留或丢弃:

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

也就是说,我不认为环境变量适合存储任何应该保持私有(private)的访问类型。系统上的任何应用程序都可以读取和写入环境变量,它们甚至是一个相当暴露的地方(与隐藏在注册表或文件系统中的任何地方相反),因为它们 an be directly enumerated with the Environment object .

关于c# - .NET 环境变量是否被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18043550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com