身分識別:預設啟動程序版本的 UI 已變更

從 ASP.NET Core 6.0 開始,身分識別 UI 預設為使用 第 5 版的啟動程序。 ASP.NET Core 3.0 至 5.0 使用了版本 4 的啟動程序。

導入的版本

ASP.NET Core 6.0

行為

AddDefaultIdentity<TUser>(IServiceCollection) 會呼叫內部私用方法 TryResolveUIFrameworkTryResolveUIFramework 會從應用程式組件讀取 UIFrameworkUIFramework 版本預設為:

  • 適用於 .NET 6 SDK 的啟動程序 5
  • 適用於 .NET Core 3.1 和 .NET 5 SDK 的啟動程序 4

範本建立的 ASP.NET Core 3.1 和 5.0 應用程式包含 wwwroot\lib\bootstrap 中的啟動程序 4。 範本建立的 ASP.NET Core 6 應用程式會使用啟動程序 5。 當 ASP.NET Core 3.1 或 5.0 應用程式移轉至 .NET 6 時,應用程式會偵測UIFramework 版本 5,而 wwwroot\lib\bootstrap 則包含版本 4。 若此版本不符,身分識別範本便會轉譯不正確。

變更原因

啟動程序 5 已在 ASP.NET Core 6.0 時間範圍內發行。

受這項變更影響的應用程式會使用預設的身分識別 UI,且已將其新增至 Startup.ConfigureServices,如下列程式碼所示:

services.AddDefaultIdentity<IdentityUser>()

執行下列其中一項動作:

  • 在專案檔中新增 MSBuild 屬性 IdentityUIFrameworkVersion,並指定啟動程序 4:

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

    上述標記會將 UIFramework 版本設為啟動程序 4,與 ASP.NET Core 3.1 和 5.0 所用的啟動程序版本相同。

  • 重新命名或刪除 wwwroot\lib\bootstrap 資料夾,並取代為 ASP.NET Core 6 範本所產生應用程式的 wwwroot\lib\bootstrap 資料夾。 身分識別範本適用於這項變更,但使用啟動程序的應用程式可能需要參閱啟動程序 5 移轉指南

受影響的 API

AddDefaultIdentity<TUser>(IServiceCollection)