Я пишу интеграционные тесты для нашего кода, подключающегося к секретному серверу Thycoti c. По соображениям безопасности пароль для сервера Thycoti c шифруется при сохранении в файле appsetting.json
. Ключ шифрования должен храниться в переменной среды системного уровня. Кроме того, политика безопасности гласит, что зашифрованный пароль и ключ шифрования никогда не могут храниться в одном месте. Зашифрованный пароль может быть в коде, но ключ шифрования не должен быть. Их рекомендуется хранить как переменную среды системного уровня. Эта договоренность была реализована нашей корпоративной командой ИТ-безопасности, и я не могу ее изменить.
Сейчас я пытаюсь написать интеграционные тесты для этого процесса. Я сталкиваюсь с проблемами доступа к системным переменным уровня изнутри тестовых устройств. Environment.GetEnvironmentVariable
возвращает ноль. Единственное, что до сих пор работало, это использование Environment.SetEnvironmentVariable(Name, Value)
внутри тестового класса. К сожалению, это помещает в код как ключ шифрования, так и зашифрованный пароль, что нарушает политику.
Я искал Stack Overflow и Google, чтобы найти решение для этого, но все указывает на использование Environment.SetEnvironmentVariable
в код, и так как это не то, что я могу сделать, я застрял.
Кто-нибудь знает, как я могу получить доступ к переменной среды уровня системы внутри текстового фиксатора MSTest на. NET Core? Есть ли какой-то ресурс, который я пропустил в своем поиске в Google?