asp.net-core - 从 .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 搜索中遗漏了一些资源吗?
解决方案
我错过了这样一个事实,即在创建新的 Windows 系统环境变量时,需要重新启动 Visual Studio 才能看到添加/更改。这不再是一个问题。
推荐阅读
- python-3.x - 在 Python 中使用 'dpkg' 会导致 OSError: [Errno 9] Bad file descriptor
- swift - 分配给 NSMenuItem 的操作似乎不起作用
- servicestack - 如何使用 ServiceStack 设置 Cache-Control?
- mpandroidchart - MPAndroidChart 如果值超过常数,我想更改点颜色
- symfony - Symfony:加载 .env.test 文件
- python-3.x - Openpyxl 2.6.0 保存问题
- sparql - 维基数据中语义相似性的 SPARQL 查询超时
- r - 在 R 中初始化依赖包的正确方法,例如使用 ggmap
- database - 如何分块和存储很长的图像、矩阵或音频文件
- android - CognitoUserPool userPool = new CognitoUserPool(this, AWSMobileClient.getInstance().getConfiguration()); 给出空值