2017-07-29 64 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

相关问题