Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
ASP.NET Core 11 porta in modo transitivo Microsoft.Data.SqlClient 7,x (fino a 5,x in .NET 10). A partire da Microsoft.Data.SqlClient 6.0, i provider di autenticazione di Microsoft Entra ID (in precedenza Azure Active Directory) non si trovano più nel pacchetto principale Microsoft.Data.SqlClient; vengono forniti in un pacchetto separato Microsoft.Data.SqlClient.Extensions.Azure. Le app che usano un valore Entra ID Authentication= nel relativo stringa di connessione SQL devono aggiungere un riferimento a questo pacchetto.
Versione introdotta
.NET 11 Preview 3
Comportamento precedente
In precedenza, il pacchetto Microsoft.Data.SqlClient 5.x includeva i provider di autenticazione Entra ID. Una stringa di connessione come Server=...;Database=...;Authentication=Active Directory Default funzionava immediatamente per qualsiasi app ASP.NET Core che includesse transitivamente Microsoft.Data.SqlClient (ad esempio, tramite Microsoft.Extensions.Caching.SqlServer o un provider SQL Server per Entity Framework Core).
Nuovo comportamento
A partire da ASP.NET Core 11, la versione transitiva Microsoft.Data.SqlClient è 7.x, che non viene più fornita dai provider di autenticazione Entra ID. Se il stringa di connessione usa uno dei valori /Active Directory *Authentication= e non è stato aggiunto il pacchetto Microsoft.Data.SqlClient.Extensions.Azure, viene visualizzato un errore di runtime simile al seguente:
Cannot find an authentication provider for 'ActiveDirectoryDefault'.
Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package to use Active Directory (Entra ID) authentication methods.
Ciò influisce sulle app che usano Microsoft.Extensions.Caching.SqlServer (DistributedSqlServerCache), sulle app che usano il provider EF Core SQL Server e su qualsiasi altro percorso di codice che in modo transitivo inserisce Microsoft.Data.SqlClient e usa l'autenticazione Entra ID.
Tipo di cambiamento che interrompe la compatibilità
Questa modifica è una modifica funzionale.
Motivo della modifica
La modifica per spostare l'autenticazione di Microsoft Entra ID fuori da Microsoft.Data.SqlClient è stata apportata nella release 6.0 upstream di Microsoft.Data.SqlClient. ASP.NET Core 11 preleva tale modifica aggiornando la versione di SqlClient da cui dipende in modo transitivo. Per altre informazioni, vedere dotnet/aspnetcore#66179.
Azione consigliata
Se l'app usa un stringa di connessione SQL con qualsiasi valore Active Directory *Authentication=, aggiungere un valore PackageReference a Microsoft.Data.SqlClient.Extensions.Azure:
<ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure"
Version="1.0.0" />
</ItemGroup>
I modelli di progetto ASP.NET Core "Account singoli" sono stati aggiornati per aggiungere questo riferimento per le configurazioni Azure SQL supportate. I nuovi progetti non richiedono alcuna modifica manuale.
Le API interessate
None. L'interruzione è un requisito di runtime transitivo per installare un pacchetto NuGet. Nessuno dei tipi in Microsoft.AspNetCore.* è interessato.