如何使用身份 2.0 存储 public 和内部用户
How to store both public and internal users using identity 2.0
我有一个应用程序,其中包含 public 和内部用户。
- public用户:通过表格、FaceBook或Google.
注册用户
- 内部用户:负责管理内容的人员。他们属于一个或多个角色。
目前,这两种用户都存储在AspNetUsers 表中。 public个用户只有一个Role,即Public个User,注册成功后分配给用户。如果分配,内部用户可以具有任何角色。
我非常担心可以以某种方式 public 可以在系统中分配一些角色并执行操作。
你能告诉我如何解决这个问题吗?
我应该将两种用户分成不同的表吗?
Could you please tell me how to eliminate this problem?
如果这两种用户之间的唯一区别是他们的角色,那么只需在您的用户 table 中使用标志列 IsPrivate
。之后,在角色管理页面中确保您始终处理具有列 IsPrivate == true
的用户。您可以通过创建从 IdentityUser
派生的单独 类 PublicUser
和 PrivateUser
来更进一步。并使用 Table Per Hierarchy(IsPrivate
将用作鉴别器)。
在您的 DbContext
中,您将有两个 DbSet
,一个用于 PublicUser
,另一个用于 PrivateUser
。后一个应该用于管理用户角色。
Should I separate two kind of users into distinct tables?
没有。如果这两种用户的唯一区别只是他们所附加的角色,那么使用一个 table 并确保像我上面所说的那样在上面加上一个鉴别器。如果它们之间存在其他差异而不仅仅是附加角色,那么您可以查看 Table Per Type or Table Per Concrete.
我有一个应用程序,其中包含 public 和内部用户。
- public用户:通过表格、FaceBook或Google. 注册用户
- 内部用户:负责管理内容的人员。他们属于一个或多个角色。
目前,这两种用户都存储在AspNetUsers 表中。 public个用户只有一个Role,即Public个User,注册成功后分配给用户。如果分配,内部用户可以具有任何角色。
我非常担心可以以某种方式 public 可以在系统中分配一些角色并执行操作。
你能告诉我如何解决这个问题吗?
我应该将两种用户分成不同的表吗?
Could you please tell me how to eliminate this problem?
如果这两种用户之间的唯一区别是他们的角色,那么只需在您的用户 table 中使用标志列 IsPrivate
。之后,在角色管理页面中确保您始终处理具有列 IsPrivate == true
的用户。您可以通过创建从 IdentityUser
派生的单独 类 PublicUser
和 PrivateUser
来更进一步。并使用 Table Per Hierarchy(IsPrivate
将用作鉴别器)。
在您的 DbContext
中,您将有两个 DbSet
,一个用于 PublicUser
,另一个用于 PrivateUser
。后一个应该用于管理用户角色。
Should I separate two kind of users into distinct tables?
没有。如果这两种用户的唯一区别只是他们所附加的角色,那么使用一个 table 并确保像我上面所说的那样在上面加上一个鉴别器。如果它们之间存在其他差异而不仅仅是附加角色,那么您可以查看 Table Per Type or Table Per Concrete.