【问题标题】:How to store both public and internal users using identity 2.0如何使用标识 2.0 存储公共和内部用户
【发布时间】:2018-06-06 13:27:25
【问题描述】:

我有一个应用程序,其中包含公共和内部用户。

  • 公众用户:通过表单、FaceBook 或 Google 注册用户。
  • 内部用户:负责管理内容的用户。他们属于一个或多个角色。

目前,这两种用户都存储在 AspNetUsers 表中。公众用户只有一个角色,即公众用户,注册成功后分配给用户。如果分配,内部用户可以具有任何角色。

我非常担心,可以为 public 分配一些角色并在系统中执行操作。

您能告诉我如何消除这个问题吗?

我应该将两种用户分成不同的表吗?

【问题讨论】:

  • 您担心管理您的用户的人会将内部权限分配给公共用户?你的问题不太清楚

标签: c# asp.net-mvc asp.net-identity-2


【解决方案1】:

您能告诉我如何消除这个问题吗?

如果这两种用户之间的唯一区别是他们的角色,那么只需在用户表中使用标志列IsPrivate。之后在角色管理页面中确保您始终处理具有列IsPrivate == true 的用户。您可以通过创建派生自IdentityUser 的单独类PublicUserPrivateUser 来更进一步。并使用Table Per HierarchyIsPrivate 将用作鉴别器)。

在您的DbContext 中,您将有两个DbSet 一个用于PublicUser,另一个用于PrivateUser。后者应该用于管理用户角色。

我应该将两种用户分成不同的表吗?

没有。如果这两种用户的唯一区别只是他们所附加的角色,那么使用一张表并确保在上面放置一个鉴别器,就像我上面所说的那样。如果它们之间除了附加角色之外还存在其他差异,那么您可以查看Table Per TypeTable Per Concrete

【讨论】:

  • 谢谢 CodeNotFound。如果我按照你的建议去做,我只需要保证没有客户被分配到属于内部系统的任何角色。这可能比创建另一个表来存储客户更好。 Anw,很抱歉我迟到的回复。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
相关资源
最近更新 更多