首页 > 解决方案 > 从 .NET Core 中的 MSTest 访问机器环境变量

问题描述

我正在为连接到 Thycotic Secret Server 的代码编写集成测试。出于安全原因,Thycotic 服务器的密码在存储在appsetting.json文件中时是加密的。加密密钥将存储在系统级环境变量中。此外,安全策略规定加密密码和加密密钥永远不能存储在同一个地方。加密密码可以在代码中,但加密密钥不能在。他们的建议是将其存储为系统级环境变量。此安排已由我们的企业 IT 安全团队实施,我无法更改。

现在我正在尝试为这个过程编写集成测试。我在从测试装置内部访问系统级环境变量时遇到问题。Environment.GetEnvironmentVariable返回空值。到目前为止唯一有效的是Environment.SetEnvironmentVariable(Name, Value)从测试类内部使用。不幸的是,这将加密密钥和加密密码都放入代码中,这违反了策略。

我已经搜索了 Stack Overflow 和 Google 以找到解决方案,但一切都指向Environment.SetEnvironmentVariable在代码中使用,因为这不是我能做的,所以我被卡住了。

有谁知道我可以访问 .NET Core 上的 MSTest 文本夹具内的系统级环境变量的方法?我在 Google 搜索中遗漏了一些资源吗?

标签: asp.net-coreenvironment-variablesmstest

解决方案


我错过了这样一个事实,即在创建新的 Windows 系统环境变量时,需要重新启动 Visual Studio 才能看到添加/更改。这不再是一个问题。


推荐阅读