如何使用identity 2.0

时间:2018-06-06 13:27:25

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

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

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

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

我非常担心公开的人可以分配一些角色并在系统中执行操作。

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

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

1 个答案:

答案 0 :(得分:3)

  

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

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

DbContext中,您DbSet有两个PublicUserPrivateUser有一个public class AudioControl: MonoBehaviour { void SetVolume(Slider slider) { AudioListener.volume = slider.Value; // probably save this value to a playerpref so it is remembered. } } 。后者应该用于管理用户角色。

  

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

没有。如果与这两种用户的唯一区别仅在于它们所附加的角色,那么使用一个表并确保如上所述将其作为鉴别器。如果它们之间存在其他差异,那么您可以查看Table Per TypeTable Per Concrete