2017-07-29 59 views
0

我想出一個Web應用程序的類來處理支付網關。該應用程序將成爲使用Identity 2.0來處理和管理用戶的ASP.NET Web應用程序。我將有4種不同的用戶類型/角色登錄到應用程序中。如何使用角色和OOP繼承來管理ASP.NET身份用戶

不同用戶

  1. 顧客
  2. 承包商
  3. 分包
  4. 僱員

一些用戶類的實施例具有附加的數據是存儲比其他用戶。我想弄清楚如何處理這個問題。

示例:客戶將擁有他們使用的指定承包商。其他用戶(分包商,承包商和員工)不會擁有此屬性。

我在想我是否可以使用開箱即用的身份rolemanager來處理這些不同的角色,或者如果我應該使用默認appliationsuser類的繼承並創建4個不同的對象。

回答

2

因爲你使用ASP.Net Identiy然後我會做這樣的事情:

  • 插入下面的角色名稱在IdentityRole表:CustomersContractorsSubContractorsEmployees。或者僅限於那些將使用您的應用程序的人。
  • 創建新類:Customer,Contractor,SubContractorEmployee。這些類應衍生自IdentityUser類。
  • 每個特定的屬性都應該定義到關聯的派生類中。因此,因爲客戶將使用他們使用的指定Contractor,則您在Customer類中創建類型爲Contractor的屬性。
  • 這裏唯一需要注意的是,當您創建一個從User派生的實例時,請確保爲其添加了正確的角色。
+0

現在我是否必須做任何特殊的事情,我將有4個獨立的類而不是1個ApplicationUser類? – dev8989

+0

您可以使用一個ApplicationUser類,但是您將最終將所有特定屬性放入同一類。所以最終你的團隊中的一些開發人員會在創建一個Employee實例時設置客戶的特定屬性:)派生類避免了這種情況。 – CodeNotFound

相關問題