Identity: a versão padrão da interface do usuário do Bootstrap foi alterada
Do ASP.NET Core 6.0 em diante, a interface do usuário do Identity usa a versão 5 do Bootstrap. ASP.NET Core 3.0 a 5.0 usado versão 4 do Bootstrap.
Versão introduzida
ASP.NET Core 6.0
Comportamento
AddDefaultIdentity<TUser>(IServiceCollection) chama o método privado interno TryResolveUIFramework. TryResolveUIFramework
lê o UIFramework do assembly do aplicativo. O padrão da versão UIFramework
é:
- Bootstrap 5 para o SDK do .NET 6
- Bootstrap 4 para o SDK do .NET Core 3.1 e .NET 5
Os aplicativos ASP.NET Core 3.1 e 5.0 criados por modelo contêm o Bootstrap 4 em wwwroot\lib\bootstrap. Os aplicativos ASP.NET Core 6 criados por modelo usam o Bootstrap 5. Quando um aplicativo ASP.NET Core 3.1 ou 5.0 é migrado para o .NET 6, o aplicativo detecta o UIFramework
versão 5, enquanto wwwroot\lib\bootstrap contém a versão 4. Essa incompatibilidade de versão renderiza incorretamente os modelos do Identity.
Motivo da alteração
O Bootstrap 5 foi lançado durante o período do ASP.NET Core 6.0.
Ação recomendada
Os aplicativos afetados por essa alteração usam a interface do usuário padrão do Identity e a adicionaram a Startup.ConfigureServices
, conforme é mostrado neste código:
services.AddDefaultIdentity<IdentityUser>()
Execute uma das seguintes ações:
Adicione a propriedade
IdentityUIFrameworkVersion
do MSBuild no arquivo de projeto e especifique o Bootstrap 4:<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <IdentityUIFrameworkVersion>Bootstrap4</IdentityUIFrameworkVersion> </PropertyGroup>
A marcação anterior define a versão
UIFramework
como o Bootstrap 4, que é a mesma versão do Bootstrap usada no ASP.NET Core 3.1 e 5.0.Renomeie ou exclua a pasta wwwroot\lib\bootstrap e substitua-a pela pasta wwwroot\lib\bootstrap de um aplicativo ASP.NET Core 6 gerado por modelo. Os modelos do Identity funcionam com essa alteração, mas para os aplicativos que usam o Bootstrap, pode ser necessário consultar o Guia de migração do Bootstrap 5.