标识:已更改 UI 的默认 Bootstrap 版本

从 ASP.NET Core 6.0 开始,标识 UI 默认使用 Bootstrap 版本 5。 ASP.NET Core 3.0 到 5.0 使用了 Bootstrap 版本 4。

已引入的版本

ASP.NET Core 6.0

行为

AddDefaultIdentity<TUser>(IServiceCollection) 调用内部专用方法 TryResolveUIFrameworkTryResolveUIFramework 读取应用程序程序集中的 UIFramework。 版本 UIFramework 默认为:

  • .NET 6 SDK 的 Bootstrap 5
  • .NET Core 3.1 和 .NET 5 SDK 的 Bootstrap 4

模板创建的 ASP.NET Core 3.1 和 5.0 应用在 wwwroot\lib\bootstrap 中包含 Bootstrap 4。 模板创建的 ASP.NET Core 6 应用使用 Bootstrap 5。 将 ASP.NET Core 3.1 或 5.0 应用迁移到 .NET 6 时,应用程序会检测 UIFramework 版本 5,而 wwwroot\lib\bootstrap 包含版本 4。 版本不匹配导致身份模板被错误呈现。

更改原因

Bootstrap 5 在 ASP.NET Core 6.0 时间范围内发布。

受此更改影响的应用使用默认的身份 UI,并已将其 Startup.ConfigureServices 添加到以下代码中:

services.AddDefaultIdentity<IdentityUser>()

请执行以下一项操作:

  • 在项目文件中添加 MSBuild 属性 IdentityUIFrameworkVersion ,并指定 Bootstrap 4:

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

    前面的标记将 UIFramework 版本设置为 Bootstrap 4,该版本与在 ASP.NET Core 3.1 和 5.0 中使用的版本相同。

  • 重命名或删除 wwwroot\lib\bootstrap 文件夹,并将其替换为 ASP.NET Core 6 模板生成的应用中的 wwwroot\lib\bootstrap 文件夹。 标识模板使用此更改,但使用 Bootstrap 的应用可能需要参考 Bootstrap 5 迁移指南

受影响的 API

AddDefaultIdentity<TUser>(IServiceCollection)