Я пытаюсь настроить экземпляр 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 поддержит это?