К сожалению, ключевое слово authentication
еще не полностью поддерживается в .NET Core. Вот проблема , которая обсуждает это.
Но .NET Core 2.2 добавил некоторую поддержку для этого варианта использования, как упомянуто в этом комментарии . Основная идея заключается в том, чтобы получить токен доступа с помощью любым способом (ADAL, REST и т. Д.) И установить для него SqlConnection.AccessToken
.
Что касается использования этого с EF Core, есть хорошая дискуссия по этому поводу в этом выпуске github и, в частности, комментарий от mgolois предоставляет простую реализацию решения, которое cbriaball упоминает в теме.
Здесь то же самое для справки
Обратите внимание, что в этом примере используется библиотека Microsoft.Azure.Services.AppAuthentication
// DB Context Class
public class SampleDbContext : DbContext
{
public SampleDbContext(DbContextOptions<TeamsDbContext> options) : base(options)
{
var conn = (System.Data.SqlClient.SqlConnection)this.Database.GetDbConnection();
conn.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;
}
}
// Startup.cs
services.AddDbContext<SampleDbContext>(options =>
{
options.UseSqlServer(<Connection String>);
});
Строка подключения будет выглядеть примерно так
Server=tcp:<server_name>.database.windows.net,1433;Database=<db_name>;