簡體   English   中英

使用 ASP.NET 核心標識時存儲用戶類型特定屬性的最佳實踐是什么?

[英]What is the best practice for storing user type specific properties while using ASP.NET Core Identity?

我在這里看到了類似的帖子,但是,答案並沒有讓我滿意。

我的應用程序中有 2 種不同類型的用戶。 它們都有不同的屬性,我需要存儲在數據庫中。 例如,我的Student用戶類型有StudentIdRegistedDate字段,而Instructor用戶類型有Major字段。

我能夠使用身份作為身份驗證機制。 我創建了StudentInstructor角色,讓我知道誰可以訪問應用程序的哪個部分,我很擅長。

我也許可以將不同類型的通用屬性(例如Gender )放入擴展IdentityUserApplicationUser class 但是,我不確定應該如何存儲特定於用戶類型的信息。 我應該為每種用戶類型擴展此ApplicationUser class 一次並擁有一個巨型表,還是應該為在ApplicationUser class 中具有Id作為外鍵的每種用戶類型創建單獨的表? 還是我應該做一些完全不同的事情?

我相信很多人之前都遇到過並解決了這個問題。 解決此問題的最佳做法是什么?

我相信您應該為學生 class 和講師 class 創建單獨的表,並使用 ApplicationUser class 的外鍵。

假設您使用的是 EF Core,下面是一個示例:

public class Student 
{
     public int StudentId { get; set; }

     // EF Core automatically creates a Foreign Key for you
     public ApplicationUser ApplicationUser { get; set; }
}

 public class Instructor 
 {
      public int InstructorId { get; set; }

      // EF Core automatically creates a Foreign Key for you
      public ApplicationUser ApplicationUser { get; set; }
 }


In your ApplicationDbContext class:

public DbSet<ApplicationUser> AppUsers { get; set; }
public DbSet<Student> Students { get; set; }
public DbSet<Instructor> Instructors { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM