Строки подключения хранилища ключей Azure и N-Layered Design
Этот вопрос относится к следующему сообщению, которое может оказаться полезным: CI/CD Azure DevOps и отделение строк подключения от контроля версий
В настоящее время я работаю над N-Layered проектом, основанным на статье Imar Spaanjaars под названием ASP.NET N-Layered Applications
Я пытаюсь реализовать Azure Key Vault, чтобы, я думаю, можно сказать, абстрагировать секреты от самого приложения.
Цель
Я хочу внедрить Azure Key Vault, используя эту концепцию N-уровня. У меня есть пример проекта, расположенного в https://github.com/RoLYroLLs/NLayer-Spaanjaars.ContactManager
проблема
Я пытаюсь выяснить, как использовать Key Vault Syntax Reference для правильного получения секрета (ов) (строки подключения) с Entity Framework.
Обновление 2019/2/22
Как указано в комментариях, я пытаюсь выяснить, как inject
или же override
строка соединения во время выполнения со значениями для Key Vault
на неосновной .Net Web API
приложение.
0 ответов
Мне удалось заставить это работать, изменив мой DbContext следующим образом:
public class MyContext : BaseDataContext {
public MyContext()
: this(GetDbConnection()) {
}
public MyContext(string connectionString)
: base(connectionString) {
}
public static string GetDbConnection() {
// Get the value from the AppSettings section in the Web.config file that will be updated by Key Vault
var connectionString = ConfigurationManager.AppSettings["{key-vault-secret-name}"];
// Return the connection string value above, if blank, use the connection string value expected in the Web.config
return string.IsNullOrWhiteSpace(connectionString) ? "MyContext" : connectionString;
}
}