Проблемы аутентификации ADOMD.Net Net 6

Я пытаюсь перенести приложение с Net 4.x на Net 6 и столкнулся со странной ситуацией. По сути, я хочу переключить Microsoft.AnalysisServices.AdomdClient.retail.amd64 на Microsoft.AnalysisServices.AdomdClient.NetCore.retail.amd64 , который, судя по тому, что я видел, должен использоваться с Net 6.

Рассматриваемая ошибка:

MsalServiceException: AADTS50052: введенный пароль превышает максимальную длину. Пожалуйста, обратитесь к своему администратору для сброса пароля.

Я использую Microsoft.AnalysisServices.AdomdClient.retail.amd64 в своей сети Net 4.x, которая зависит от Microsoft.Identity.Client. Приложение вызывает Power BI с помощью строки подключения с паролем ={accessToken}, который является моим OnBehalfToken. В версии 4.10 соединение работает нормально, но если я обновлю пакет до последней версии, я получаю сообщение об ошибке, связанное со слишком длинным паролем. Насколько я понял, проблема начинает возникать после версии 4.43.

Такое же поведение наблюдается и в эквивалентном пакете net core Microsoft.AnalysisServices.AdomdClient.NetCore.retail.amd64 , который, насколько я могу судить, должен быть практически таким же. Этот конкретный пакет должен иметь Microsoft.Identity.Client (=> 4.43.0).

Код выглядит примерно так

              string ConnectionString = $"Provider=MSOLAP;Data Source={server};User ID=;Password={accessToken};Catalog={databaseName};Persist Security Info=True; Impersonation Level=Impersonate";

        using (AdomdConnection adomdConnection = new AdomdConnection())
        {
            adomdConnection.ConnectionString = ConnectionString;
            AdomdCommand adomdCommand = new AdomdCommand();
            adomdCommand.Connection = adomdConnection;                
            adomdCommand.CommandText = "SAMPLE QUERY";
            adomdConnection.Open(); // Fails AADSTS50052
            CellSet cellSet = adomdCommand.ExecuteCellSet();
            adomdConnection.Close();
        }

Я не понимаю, почему он работает в более старых версиях, но не работает в последней версии 4.x или любой версии Net 6.

Есть ли другой способ сделать это, или я упускаю что-то очевидное?

Спасибо.

0 ответов

Другие вопросы по тегам