链接应用程序数据和AspUserRole

时间:2016-03-28 18:19:09

标签: asp.net sql-server ef-code-first asp.net-identity claims-based-identity

在角色表中,我们有角色列表

RoleId | RoleName
------------------
  1    | Admin
  2    | OrgAdmin
  3    | ProjectAdmin
  4    | TeamLeader
  5    | TeamMember

概念

  • 用户注册组织后,我们分配了OrgAdmin 作用。
  • OrgAdmin邀请ProjectAdmins管理项目。
  • ProjectAdmin邀请团队负责人和团队成员加入他们的团队 项目。
  • 团队成员可以处理多个项目,换句话说,他/她可以成为PA 由其他组织管理的其他项目。
  

例如:

     

John邀请成为Organization1的团队成员 - > PROJECT1。   也可以邀请同一用户管理其他项目   Organization2 - > PROJECT1。所以约翰有两个角色ProjectAdmin(PA)和   TeamMember(TM),但PA用于Project2,TM用于Project1

在AspUserRole表中,我们可以维护UserId和RoleId,但是用户有来自不同组织的多个角色(PA / TM),如何在AspUserRole表中维护这个或者我是否需要使用不同的表来维护这些关系?

我试图维护下面的单独表格。我是否遗漏了Roles的内置功能?

UserId | RoleId | OrgId 
------------------------
  1    |  1     |  NULL 
  2    |  2     |   1    
  3    |  3     |   1   
  4    |  4     |   1
  4    |  3     |   2 

技术:

  • Asp.Net 4.5,C#
  • MVC 5
  • 首先是实体框架代码
  • SQL Server 2012

1 个答案:

答案 0 :(得分:0)

您可以在一个表中执行此操作,但如果组织可以有多个Project,那么您还需要添加ProjectId。