SqlClient Active Directory Authentifizierung in ein separates Paket verschoben

ASP.NET Core 11 bringt transitiv Microsoft.Data.SqlClient 7.x mit (gegenüber 5.x in .NET 10). Ab Microsoft.Data.SqlClient 6.0 befinden sich die Microsoft Entra ID (ehemals Azure Active Directory) Authentifizierungsanbieter nicht mehr im Hauptpaket Microsoft.Data.SqlClient; sie werden in einem separaten Microsoft.Data.SqlClient.Extensions.Azure-Paket ausgeliefert. Apps, die einen wert vom Typ Entra ID Authentication= in ihrem SQL-Verbindungszeichenfolge verwenden, müssen diesem Paket einen Verweis hinzufügen.

Eingeführt in Version

.NET 11 Vorschau 3

Bisheriges Verhalten

Zuvor enthielt das Microsoft.Data.SqlClient 5.x-Paket die Entra ID Authentifizierungsanbieter. Eine Verbindungszeichenfolge wie Server=...;Database=...;Authentication=Active Directory Default funktionierte ohne weitere Konfiguration in jeder ASP.NET Core-App, die Microsoft.Data.SqlClient transitiv eingebunden hat (beispielsweise über Microsoft.Extensions.Caching.SqlServer oder einen Entity Framework Core-SQL Server-Anbieter).

Neues Verhalten

Ab ASP.NET Core 11 ist die transitive Version von Microsoft.Data.SqlClient 7.x, die die Entra ID-Authentifizierungsanbieter nicht mehr enthält. Wenn Ihr Verbindungszeichenfolge einen der Werte Active Directory *Authentication= verwendet und Sie das paket Microsoft.Data.SqlClient.Extensions.Azure nicht hinzugefügt haben, erhalten Sie einen Laufzeitfehler ähnlich wie:

Cannot find an authentication provider for 'ActiveDirectoryDefault'.
Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package to use Active Directory (Entra ID) authentication methods.

Dies betrifft Apps, die Microsoft.Extensions.Caching.SqlServer (DistributedSqlServerCache) verwenden, Apps, die den SQL-Server-Anbieter EF Core verwenden, sowie alle anderen Codepfade, die transitiv Microsoft.Data.SqlClient einbinden und die Entra ID-Authentifizierung nutzen.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Die Änderung, mit der die Microsoft Entra ID-Authentifizierung aus Microsoft.Data.SqlClient herausgelöst wurde, wurde in der übergeordneten Microsoft.Data.SqlClient-Version 6.0 vorgenommen. ASP.NET Core 11 nimmt diese Änderung auf, indem sie die SqlClient-Version aktualisiert, von der transitiv abhängig ist. Weitere Informationen finden Sie unter dotnet/aspnetcore#66179.

Wenn Ihre App eine SQL-Verbindungszeichenfolge mit einem beliebigen wert vom Typ Active Directory *Authentication= verwendet, fügen Sie PackageReference zu Microsoft.Data.SqlClient.Extensions.Azure hinzu:

<ItemGroup>
  <PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure" 
    Version="1.0.0" />
</ItemGroup>

Die ASP.NET Core Projektvorlagen "Einzelne Konten" wurden aktualisiert, um diesen Verweis für die unterstützten Azure SQL Konfigurationen hinzuzufügen. Für neue Projekte sind keine manuellen Änderungen erforderlich.

Betroffene APIs

None. Die Unterbrechung ist eine transitive Laufzeitanforderung zum Installieren eines NuGet-Pakets. Es sind keine Typen in Microsoft.AspNetCore.* betroffen.