Как открыть соединение System.Data.SQLClient.SQLConnection с универсальной аутентификацией Active Directory

Я использовал приведенный ниже код для подключения к базе данных SQL Azure, в которой использовалась встроенная проверка подлинности Active Directory.

private string GenerateConnectionString(string databaseName, string serverName)
{
    SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder();
    sqlConnectionBuilder.DataSource = string.Format(
        "tcp:{0}.database.windows.net",
        serverName);
    connBuilder.InitialCatalog = databaseName;
    connBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryIntegrated;
    connBuilder.ConnectTimeout = 30;
    return connBuilder.ConnectionString;
}

Проверка подлинности изменена с встроенной проверки подлинности Active Directory на универсальную проверку подлинности Active Directory для поддержки многофакторной проверки подлинности.

Я вижу, что перечисление System.Data.SqlClient.SqlAuthenticationMethod не имеет значения для универсальной аутентификации Active Directory. Можно ли еще использовать System.Data.SqlClient для подключения к БД? Если да, то что мне нужно изменить в коде?

введите описание изображения здесь


person shanmuga raja    schedule 06.02.2017    source источник


Ответы (2)


Метод проверки подлинности ActiveDirectoryInteractive доступен начиная с .NET Framework 4.7.2. Не уверен, совпадает ли он с «Универсальным» или нет.

person Andrey Belykh    schedule 20.04.2018
comment
.NET Framework 4.7.2 не была выпущена, когда этот вопрос был впервые задан. Кроме того, универсальная проверка подлинности Active Directory действительно аналогична ActiveDirectoryInteractive. См. Это: docs.microsoft.com/en-us / dotnet / framework / что нового / - person Loren Paulsen; 01.05.2018

По состоянию на август 2020 года появился лучший способ подключения к базе данных Azure SQL или Azure Synapse DW (пулы SQL). Используя драйвер MSOLEDBSQL (который вы можете распространять вместе со своим приложением), ваше приложение может выполнять интерактивную аутентификацию / аутентификацию MFA с использованием обычных объектов System.Data.OleDb:

using System.Data.OleDb;
...
OleDbConnection con = new OleDbConnection("Provider=MSOLEDBSQL;Data Source=sqlserver.database.windows.net;User [email protected];Initial Catalog=database;Authentication=ActiveDirectoryInteractive");

Фактически, это рекомендуемый способ программного подключения к любому продукту Microsoft SQL, поскольку как SQLOLEDB, так и SQLNCLI (также известный как SNAC) устарели.

person Dan    schedule 31.08.2020