从 .NET Core 中的 MSTest 访问计算机环境变量



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

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

我已经搜索了Stack Overflow和Google来找到解决方案,但是一切都指向在代码中使用Environment.SetEnvironmentVariable,并且由于这不是我能做的事情,所以我被困住了。

有谁知道我可以在 .NET Core 上的 MSTest 文本装置中访问系统级环境变量的方法?我在谷歌搜索中错过了一些资源吗?

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

最新更新