密钥“身份验证”值无效

Fik*_*man 16 json azure azure-active-directory .net-core azure-sql-database

我有一个 .NET Core 3.0 应用程序,正在尝试使用 EF Core 和 Active Directory 集成身份验证连接到 Azure SQL 数据库。
我已验证我可以从我的计算机访问此数据库,因为我可以使用 SQL Server Management Studio 和“Azure Active Directory 集成”身份验证很好地连接到它。

但是,当我尝试读取应用程序中的数据(使用 EF Core)时,我总是收到 System.Argument 异常,其中包含以下语句:

密钥“身份验证”值无效

异常详细信息指向数据库连接字符串。

因此,这是我的 dev appsettings.json 文件中的连接字符串:

"ConnectionStrings": { "MCDB": "服务器=tcp:dev-media-center-sql.database.windows.net,1433;初始目录=MediaCenter;持久安全信息=False;用户ID={我的用户ID}; MultipleActiveResultSets=False;加密=True;TrustServerCertificate=False;身份验证=Active Directory 集成;" },

我尝试直接在代码中对连接字符串进行硬编码,认为我的 JSON 可能有问题,但我仍然遇到相同的异常。

“Active Directory Integrated”不是“身份验证”关键字的有效值吗?如果不是,那是什么?我已经尝试过“ActiveDirectoryIntegrated”(不带空格)和/“Active Directory Integrated”/(转义双引号)但无济于事。

Fra*_*hes 21

如果您将 EF Core 与该Microsoft.EntityFrameworkCore.SqlServer包一起使用,请注意EF Core 数据库提供商的Microsoft Learn页面上的此提示:

Microsoft.Data.SqlClient 包的发布频率比 EF Core 提供程序更频繁。如果您想利用新功能和错误修复,可以添加对最新版本的 Microsoft.Data.SqlClient 的直接包引用。

话虽这么说,修复方法是将包添加到您的项目中:

裁剪屏幕截图显示选择安装在 Visual Studio 中用户解决方案文件中的“Microsoft.Data.SqlClient NuGet”包。

  • 你怎么知道这个功能需要更新版本的SqlClient? (2认同)

小智 1

这本质上是与较新的 .NET Core 版本相关的相同问题,该版本的答案是当前不受支持,但是我添加了一条评论,我注意到它现在可以工作 - 请参阅EF Core 3.1 using Authentication=Active Directory融合的