首頁 >資料庫 >mysql教程 >如何在 .NET Core 2.1 Identity 中取得所有使用者及其關聯角色?

如何在 .NET Core 2.1 Identity 中取得所有使用者及其關聯角色?

Patricia Arquette
Patricia Arquette原創
2024-12-01 21:21:14411瀏覽

How to Get All Users with Their Associated Roles in .NET Core 2.1 Identity?

取得 .NET Core 2.1 Identity 中所有具有關聯角色的使用者

取得使用者資訊(包含關聯角色)對於使用者管理任務至關重要。 .NET Core 2.1 Identity 提供了一個管理使用者角色的新方法,本文將探討如何實現此目標。

了解 IdentityUser 中的變更

之前,IdentityUser 包含一個用於儲存的 Roles 屬性關聯的角色資料。但是,在 .NET Core 中,此屬性已被刪除。相反,該策略圍繞著引入新的類別和關係:

  • ApplicationUserRole:連接 ApplicationUser 和 ApplicationRole 的連結實體。
  • ApplicationRole:代表一個類別角色。
  • ApplicationUser:代表使用者的類,現在引用 ApplicationUserRole。

實作解決方案

要實現此解決方案,請執行以下操作這些步驟:

  1. 定義ApplicationUser 類,具有UserRoles 屬性。
  2. 建立 ApplicationUserRoleApplicationRole 類別。
  3. 更新DBContext 處理新實體和關係。
  4. 使用更新的實體類型在 啟動 中設定 身分

角色資料的熱切載入

至急切地載入使用者的角色訊息,使用以下內容程式碼:

this.Users = userManager.Users.Include(u => u.UserRoles).ThenInclude(ur => ur.Role).ToList();

解決「未知列」錯誤

如果遇到與「未知列」相關的錯誤,請確保已將以下程式碼新增至 ApplicationDbContextOnModelCreating方法:

protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    // Define the relationships for ApplicationUserRole
    builder.Entity<ApplicationUserRole>(userRole =>
    {
        userRole.HasKey(ur => new { ur.UserId, ur.RoleId });
        ...
        // Additional relationship configuration goes here
    });
}

ASP.NET Core 2.2 更新

在ASP.NET Core 2.2 及更高版本中, > 的使用方式有固有差異。被定義。它應該繼承自 IdentityUserRole 而不是 IdentityUserRole 以避免編譯錯誤。

以上是如何在 .NET Core 2.1 Identity 中取得所有使用者及其關聯角色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn