Share via


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.

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.

APIs afetadas

AddDefaultIdentity<TUser>(IServiceCollection)