Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
ASP.NET Core 11 pośrednio uwzględnia Microsoft.Data.SqlClient 7.x (w porównaniu z 5.x w .NET 10). Począwszy od Microsoft.Data.SqlClient 6.0, dostawcy uwierzytelniania Microsoft Entra ID (wcześniej Azure Active Directory) nie znajdują się już w głównym pakiecie Microsoft.Data.SqlClient; są dostarczane w osobnym pakiecie Microsoft.Data.SqlClient.Extensions.Azure. Aplikacje używające wartości Entra ID Authentication= w parametry połączenia SQL muszą dodać odwołanie do tego pakietu.
Wersja wprowadzona
.NET 11 (wersja zapoznawcza 3)
Poprzednie zachowanie
Wcześniej pakiet Microsoft.Data.SqlClient 5.x zawierał dostawców uwierzytelniania Entra ID. Parametr połączenia, taki jak Server=...;Database=...;Authentication=Active Directory Default, działał od razu w przypadku dowolnej aplikacji ASP.NET Core, która pośrednio dołączała Microsoft.Data.SqlClient (na przykład za pośrednictwem Microsoft.Extensions.Caching.SqlServer lub dostawcy SQL Server dla Entity Framework Core).
Nowe zachowanie
Począwszy od ASP.NET Core 11, przechodnia wersja Microsoft.Data.SqlClient to 7.x, która nie dostarcza już dostawców uwierzytelniania Entra ID. Jeśli parametry połączenia używa jednej z wartości Active Directory *Authentication= i nie dodano pakietu Microsoft.Data.SqlClient.Extensions.Azure, zostanie wyświetlony błąd środowiska uruchomieniowego podobny do:
Cannot find an authentication provider for 'ActiveDirectoryDefault'.
Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package to use Active Directory (Entra ID) authentication methods.
Ma to wpływ na aplikacje korzystające z Microsoft.Extensions.Caching.SqlServer (DistributedSqlServerCache), aplikacje korzystające z dostawcy SQL Server EF Core, a także wszelkie inne ścieżki kodu, które pośrednio obejmują Microsoft.Data.SqlClient i korzystają z uwierzytelniania Entra ID.
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Zmiana polegająca na przeniesieniu uwierzytelniania Microsoft Entra ID poza Microsoft.Data.SqlClient została wprowadzona w źródłowym wydaniu Microsoft.Data.SqlClient 6.0. ASP.NET Core 11 uwzględnia tę zmianę, aktualizując wersję SqlClient, od której jest zależny pośrednio. Aby uzyskać więcej informacji, zobacz dotnet/aspnetcore#66179.
Zalecana akcja
Jeśli aplikacja używa parametrów połączenia SQL z dowolną wartością Active Directory *Authentication=, dodaj element PackageReference do Microsoft.Data.SqlClient.Extensions.Azure:
<ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure"
Version="1.0.0" />
</ItemGroup>
Szablony projektów "Indywidualne konta" ASP.NET Core zostały zaktualizowane w celu dodania tego odwołania do konfiguracji Azure SQL, które obsługują. Nowe projekty nie wymagają ręcznej zmiany.
Interfejsy API, których dotyczy problem
None. Przerwa jest przejściowym wymaganiem środowiska uruchomieniowego do zainstalowania pakietu NuGet. Żadne typy w Microsoft.AspNetCore.* nie są objęte zmianami.