Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Semua Pengguna dengan Peranan Berkaitan Mereka dalam Identiti .NET Core 2.1?

Bagaimana untuk Mendapatkan Semua Pengguna dengan Peranan Berkaitan Mereka dalam Identiti .NET Core 2.1?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 21:21:14488semak imbas

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

Dapatkan Semua Pengguna dengan Peranan Berkaitan dalam Identiti .NET Core 2.1

Mendapatkan maklumat pengguna, termasuk peranan yang berkaitan, adalah penting untuk tugas pengurusan pengguna. .NET Core 2.1 Identity mempunyai pendekatan baharu untuk mengurus peranan pengguna dan artikel ini meneroka cara mencapai matlamat ini.

Memahami Perubahan dalam IdentityUser

Sebelum ini, IdentityUser mengandungi sifat Peranan untuk disimpan data peranan yang berkaitan. Walau bagaimanapun, dalam .NET Core, sifat ini telah dialih keluar. Sebaliknya, strategi ini berkisar tentang memperkenalkan kelas dan perhubungan baharu:

  • ApplicationUserRole: Entiti pemaut yang menghubungkan ApplicationUser dan ApplicationRole.
  • ApplicationRoleApplicationRole
  • : Kelas yang mewakili a peranan.
  • ApplicationUser
  • : Kelas yang mewakili pengguna dan kini merujuk ApplicationUserRole.

Melaksanakan Penyelesaian

Untuk melaksanakan penyelesaian ini, ikuti langkah-langkah ini:
  1. Takrifkan Kelas ApplicationUser dengan sifat UserRole
  2. .
  3. Buat kelas ApplicationUserRole dan ApplicationRole
  4. .
  5. Kemas kini. yang DBContext
  6. untuk mengendalikan entiti dan perhubungan baharu.
  7. Konfigurasikan Identiti dalam Permulaan
  8. dengan jenis entiti yang dikemas kini.

Bersemangat Memuatkan Data Peranan

Kepada dengan penuh semangat muatkan maklumat peranan pengguna, gunakan kod berikut:
this.Users = userManager.Users.Include(u => u.UserRoles).ThenInclude(ur => ur.Role).ToList();

Menyelesaikan Ralat "Lajur Tidak Diketahui"

Jika anda menghadapi ralat yang berkaitan dengan "Lajur Tidak Diketahui", pastikan anda mempunyai menambahkan kod berikut pada ApplicationDbContext anda OnModelCreating

kaedah:
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
    });
}

Kemas Kini ASP.NET Core 2.2

Dalam ASP.NET Core 2.2 dan lebih baru, terdapat perbezaan yang wujud dalam cara IdentityUserRole ditakrifkan. Ia harus diwarisi daripada IdentityUserRole dan bukannya IdentityUserRole

untuk mengelakkan ralat kompilasi.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Pengguna dengan Peranan Berkaitan Mereka dalam Identiti .NET Core 2.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn