Строки подключения хранилища ключей Azure и N-Layered Design - PullRequest
0 голосов
/ 21 февраля 2019

Этот вопрос относится к следующему сообщению, которое может оказаться полезным: CI / CD Azure DevOps и отделение строк подключения от управления исходным кодом

В настоящее время я работаю над проектом N-Layered на основеот статьи Imar Spaanjaars под названием N-Layered приложений ASP.NET

Я пытаюсь реализовать хранилище ключей Azure , я думаю, вы можете сказать,абстрактные секреты из самого приложения.

Цель

Я хочу реализовать Хранилище ключей Azure с использованием этой концепции N-уровня.У меня есть пример проекта, расположенный по адресу NLayer-Spaanjaars.ContactManager

Проблема

Я пытаюсь выяснить, как использовать Справочник по синтаксису хранилища ключей для правильного получения секрета (-ов) (строки подключения) с помощью Entity Framework.

Обновление 2019/2/22

Как указано вВ комментариях я пытаюсь выяснить, как inject или override строка подключения во время выполнения со значениями для Key Vault в неосновном .Net Web API приложении.

1 Ответ

0 голосов
/ 07 марта 2019

Мне удалось заставить это работать, изменив мой 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;
    }
}
...