Строки подключения хранилища ключей 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;
    }
}
Другие вопросы по тегам