ASP.NET Core 11 會連帶引入 Microsoft.Data.SqlClient 7.x(高於 .NET 10 中的 5.x)。 從 Microsoft.Data.SqlClient 6.0 開始,Microsoft Entra ID(前稱 Azure Active Directory)認證提供者不再包含在主 Microsoft.Data.SqlClient 套件中;它們以獨立的 Microsoft.Data.SqlClient.Extensions.Azure 套件出貨。 在其 SQL 連接字串中使用 Entra ID Authentication= 值的應用程式,必須新增此套件的參考。
所推出的版本
.NET 11 預覽版 3
以前的行為
先前,Microsoft.Data.SqlClient 5.x 套件包含 Entra ID 驗證提供者。 像 Server=...;Database=...;Authentication=Active Directory Default 這樣的連線字串,對於任何透過相依性鏈結間接納入 Microsoft.Data.SqlClient 的 ASP.NET Core 應用程式而言,都能開箱即用(例如透過 Microsoft.Extensions.Caching.SqlServer 或 Entity Framework Core SQL Server 提供者)。
新行為
從 ASP.NET Core 11 開始,Microsoft.Data.SqlClient 的傳遞相依版本為 7.x,且不再隨附 Entra ID 驗證提供者。 如果你的連接字串使用Active Directory *Authentication= 值,且你沒有新增 Microsoft.Data.SqlClient.Extensions.Azure 套件,你會遇到類似的執行時錯誤:
Cannot find an authentication provider for 'ActiveDirectoryDefault'.
Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package to use Active Directory (Entra ID) authentication methods.
這影響使用 Microsoft.Extensions.Caching.SqlServer(DistributedSqlServerCache)、使用 EF Core SQL Server 提供者的應用程式,以及任何傳遞性地引入 Microsoft.Data.SqlClient 並使用 Entra ID 認證的程式碼路徑。
破壞性變更的類型
此變更為行為變更。
變更的原因
將Microsoft Entra ID認證從 Microsoft.Data.SqlClient 移出的變更是在上游 Microsoft.Data.SqlClient 6.0 版本中完成的。 ASP.NET Core 11 透過遞移升級它依賴的 SqlClient 版本來承接這些變更。 欲了解更多資訊,請參見 dotnet/aspnetcore#66179。
建議的動作
如果您的應用程式使用任何值為 Active Directory *Authentication= 的 SQL 連線字串,請將 PackageReference 新增至 Microsoft.Data.SqlClient.Extensions.Azure:
<ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure"
Version="1.0.0" />
</ItemGroup>
ASP.NET Core「個人帳號」專案範本已更新,新增了支援的 Azure SQL 配置參考。 新專案不需要手動更改。
受影響的 API
None. 中斷是安裝 NuGet 套件時的傳遞執行時需求。
Microsoft.AspNetCore.* 中的類型不會受到影響。