Проблема с подключением к Sql Azure Db из C# с использованием пароля Active Directory

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

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

А затем настроить учетную запись службы DES в качестве внешнего поставщика.

СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКУЮ Службу DynamicsDataExportService ОТ ВНЕШНЕГО ПОСТАВЩИКА

Все хорошо, однако я хочу автоматизировать процесс, поэтому мне нужно войти в службу с помощью C#, подключиться и запустить код таким образом.

Я запускаю ядро ​​​​2.2 с System.Data.SqlClient 4.7, используя следующий код:

        var cs = "data source=tcp:dvzxfsdg-sql.database.windows.net,1433;initial catalog=dfsdfs-sqldb; Authentication=Active Directory Integrated";
        using (var connection = new SqlConnection(cs))
        {
            connection.Open();

Раздражающе выдает ошибку

«System.ArgumentException: 'Ключевое слово не поддерживается: 'аутентификация'.'».

Я почти уверен, что ошибка, которую я совершаю, довольно проста, но я не могу понять ее суть. Поэтому любые указатели принимаются с благодарностью.


person Regianni    schedule 15.11.2019    source источник
comment
Попробуйте удалить tcp: из строки подключения, я не думаю, что вам нужно указывать порт (1433).   -  person TrevorBrooks    schedule 15.11.2019
comment
См. эту статью: docs.microsoft. com/en-us/azure/sql-database/   -  person TrevorBrooks    schedule 15.11.2019
comment
Что я сделал с SQL, так это сначала получил токен доступа Azure AD для базы данных SQL, а затем назначил его SqlConnection перед его открытием. Строка подключения определяет только имя сервера и базы данных и ничего больше.   -  person juunas    schedule 15.11.2019
comment
Я наконец понял, что dotnet core 2.0 не поддерживает этот тип входа в систему, поэтому в конечном итоге мне пришлось раскошелиться на фреймворковую версию приложения. Тогда тот же код работал отлично. Спасибо всем за попытку помочь. Очень признателен.   -  person Regianni    schedule 16.06.2020


Ответы (1)


Возможно, вы захотите попробовать использовать SQLConnectionStringBuilder для правильного форматирования строки подключения. Это помогает избежать опечаток и проблем, с которыми вы можете столкнуться при использовании строки подключения в виде открытого текста. После этого вы можете установить AuthenticationMethod непосредственно в билдере.

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder ()
    {
        DataSource = "ServerName",
        InitialCatalog = "DatabaseName",
        etc...
    }

builder.Authentication = SqlAuthenticationMethod.ActiveDirectoryInteractive;
SqlConnection sqlConnection = new SqlConnection(builder.ConnectionString);

Если база данных SQL является базой данных SQL Azure, вы можете просмотреть обзорную страницу ресурса и найти колонку «Строки подключения». Это может помочь устранить проблему, связанную с предоставленной вами строкой подключения.

Ознакомьтесь с этим ответом о создании строк подключения для получения дополнительной информации.

person AndrewGentry    schedule 15.11.2019