Bagikan melalui


Identitas: Versi Bootstrap default antarmuka pengguna berubah

Mulai dari ASP.NET Core 6.0, Antarmuka Pengguna Identitas default menggunakan Bootstrap versi 5. ASP.NET Core 3.0 hingga 5.0 menggunakan Bootstrap versi 4.

Versi yang diperkenalkan

ASP.NET Core 6.0

Perilaku

AddDefaultIdentity<TUser>(IServiceCollection) memanggil metode privat internal TryResolveUIFramework. TryResolveUIFrameworkUIFramework membaca dari rakitan aplikasi. Versi UIFramework default untuk:

  • Bootstrap 5 untuk .NET 6 SDK
  • Bootstrap 4 untuk .NET Core 3.1 dan .NET 5 SDK

Aplikasi ASP.NET Core 3.1 dan 5.0 yang dibuat templat berisi Bootstrap 4 di wwwroot\lib\bootstrap. Aplikasi ASP.NET Core 6 yang dibuat templat menggunakan Bootstrap 5. Saat aplikasi ASP.NET Core 3.1 atau 5.0 dimigrasikan ke .NET 6, aplikasi mendeteksi UIFramework versi 5, sementara wwwroot\lib\bootstrap berisi versi 4. Versi ini salah merender templat Identitas.

Alasan untuk berubah

Bootstrap 5 dirilis selama jangka waktu ASP.NET Core 6.0.

Aplikasi yang terpengaruh oleh perubahan ini menggunakan antarmuka pengguna Identitas default dan telah menambahkannya seperti yang ditunjukkan Startup.ConfigureServices dalam kode berikut:

services.AddDefaultIdentity<IdentityUser>()

Ikuti salah satu tindakan berikut:

  • Tambahkan properti IdentityUIFrameworkVersion MSBuild dalam file proyek dan tentukan Bootstrap 4:

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

    Markup sebelumnya mengatur UIFramework versi ke Bootstrap 4, versi Bootstrap yang sama seperti yang digunakan dalam ASP.NET Core 3.1 dan 5.0.

  • Ganti nama atau hapus folder wwwroot\lib\bootstrap dan ganti dengan folder wwwroot\lib\bootstrap dari aplikasi yang dihasilkan templat ASP.NET Core 6. Templat Identitas berfungsi dengan perubahan ini tetapi aplikasi yang menggunakan Bootstrap mungkin perlu merujuk ke panduan migrasi Bootstrap 5.

API yang Terpengaruh

AddDefaultIdentity<TUser>(IServiceCollection)