Identity: se ha cambiado la versión de Bootstrap predeterminada de la interfaz de usuario

A partir de ASP.NET Core 6.0, la interfaz de usuario de Identity tiene como valor predeterminado el uso de la versión 5 de Bootstrap. Las versiones de la 3.0 a la 5.0 de ASP.NET Core usaban la versión 4 de Bootstrap.

Versión introducida

ASP.NET Core 6.0

Comportamiento

AddDefaultIdentity<TUser>(IServiceCollection) llama al método privado interno TryResolveUIFramework. TryResolveUIFramework lee UIFramework en el ensamblado de aplicación. El valor predeterminado de la versión UIFramework es:

  • Bootstrap 5 para el SDK de .NET 6
  • Bootstrap 4 para el SDK de .NET Core 3.1 y .NET 5

Las aplicaciones de ASP.NET Core 3.1 y 5.0 creadas por plantillas contienen Bootstrap 4 en wwwroot\lib\bootstrap. Las aplicaciones de ASP.NET Core 6 creadas por plantillas usan Bootstrap 5. Cuando se migra una aplicación de ASP.NET Core 3.1 o 5.0 a .NET 6, la aplicación detecta la versión UIFramework 5, mientras que wwwroot\lib\bootstrap contiene la versión 4. Esta incoherencia de versiones representa incorrectamente las plantillas de Identity.

Motivo del cambio

Bootstrap 5 se lanzó durante el periodo de tiempo de ASP.NET Core 6.0.

Las aplicaciones afectadas por este cambio usan la interfaz de usuario predeterminada de Identity y la han agregado en Startup.ConfigureServices como se muestra en el código siguiente:

services.AddDefaultIdentity<IdentityUser>()

Realice una de las siguientes acciones:

  • Agregue la propiedad IdentityUIFrameworkVersion de MSBuild en el archivo del proyecto y especifique Bootstrap 4:

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

    El marcado anterior establece la versión UIFramework en Bootstrap 4, la misma versión de Bootstrap usada en ASP.NET Core 3.1 y 5.0.

  • Cambie el nombre o elimine la carpeta wwwroot\lib\bootstrap y reemplácela por la carpeta wwwroot\lib\bootstrap en una aplicación generada por plantilla de ASP.NET Core 6. Las plantillas de Identity funcionan con este cambio, pero las aplicaciones que usan Bootstrap pueden necesitar consultar la guía de migración de Bootstrap 5.

API afectadas

AddDefaultIdentity<TUser>(IServiceCollection)