Конфигурация основной базы данных EF Identity Server с помощью Azure MSI - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь настроить экземпляр Identity Server, размещенный в качестве веб-приложения Azure, для подключения к моей базе данных с использованием идентификатора управляемой службы (https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-connect-msi).

На момент написания этой статьи, указанной выше, EF Core не поддерживал токены доступа для соединений с SQL Server. Похоже, что это изменилось с выпуском 2.2, который в настоящее время находится в предварительном просмотре.

В настоящее время настройки моего хранилища настроек выглядят так:

.AddConfigurationStore(options =>
            {
                options.ConfigureDbContext = b =>
                {
                    b.UseSqlServer(
                        connectionString,
                        sql => { sql.MigrationsAssembly(migrationsAssembly); }
                    );
                };
            })

С пакетом предварительного просмотра EF Core 2.2, как бы я добавил эквивалентный токен значения, как указано в руководстве, приведенном выше?

public MyDatabaseContext(SqlConnection conn) : base(conn, true)
{
conn.ConnectionString = WebConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString;
// DataSource != LocalDB means app is running in Azure with the SQLDB connection string you configured
if(conn.DataSource != "(localdb)\\MSSQLLocalDB")
    conn.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

Database.SetInitializer<MyDatabaseContext>(null);
}

На первый взгляд кажется, что мне придется подождать, пока пакет IdentityServer4.EntityFramework поддержит это?

1 Ответ

0 голосов
/ 25 июня 2019

У меня была похожая проблема,

Попробуйте перегрузить UseSqlServer, который принимает DbConnection, и передайте ему SqlConnection с набором токенов.

у меня сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...