Identità: versione predefinita di Bootstrap dell'interfaccia utente modificata

A partire da ASP.NET Core 6.0, l'interfaccia utente dell'identità usa per impostazione predefinita la versione 5 di Bootstrap. ASP.NET Core da 3.0 a 5.0 ha usato la versione 4 di Bootstrap.

Versione introdotta

ASP.NET Core 6.0

Comportamento

AddDefaultIdentity<TUser>(IServiceCollection) chiama il metodo privato interno TryResolveUIFramework. TryResolveUIFramework legge UIFramework dall'assembly dell'applicazione. Per impostazione predefinita, la versione UIFramework è:

  • Bootstrap 5 per .NET 6 SDK
  • Bootstrap 4 per .NET Core 3.1 e .NET 5 SDK

Le app create da modelli ASP.NET Core 3.1 e 5.0 contengono Bootstrap 4 in wwwroot\lib\bootstrap. Le app create da modelli ASP.NET Core 6 usano Bootstrap 5. Quando viene eseguita la migrazione di un'app ASP.NET Core 3.1 o 5.0 a .NET 6, l'applicazione rileva UIFramework versione 5, mentre wwwroot\lib\bootstrap contiene la versione 4. La mancata corrispondenza di questa versione esegue il rendering non corretto dei modelli di identità.

Motivo della modifica

Bootstrap 5 è stato rilasciato durante l'intervallo di tempo di ASP.NET Core 6.0.

Le app interessate da questa modifica usano l'interfaccia utente di identità predefinita che hanno aggiunto in Startup.ConfigureServices come illustrato nel codice seguente:

services.AddDefaultIdentity<IdentityUser>()

Effettua una delle seguenti azioni:

  • Aggiungere la proprietà MSBuild IdentityUIFrameworkVersion nel file di progetto e specificare Bootstrap 4:

    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
      <IdentityUIFrameworkVersion>Bootstrap4</IdentityUIFrameworkVersion>
    </PropertyGroup>
    

    Il markup precedente imposta la versione UIFramework su Bootstrap 4, la stessa versione di Bootstrap usata in ASP.NET Core 3.1 e 5.0.

  • Rinominare o eliminare la cartella wwwroot\lib\bootstrap e sostituirla con la cartella wwwroot\lib\bootstrap da un'app generata dal modello di ASP.NET Core 6. I modelli di identità funzionano con questa modifica, ma le app che usano Bootstrap potrebbero dover fare riferimento alla Guida alla migrazione di Bootstrap 5.

API interessate

AddDefaultIdentity<TUser>(IServiceCollection)