【问题标题】:How to make Users have different properties depending on their Role (ASP.NET Identity)如何根据角色(ASP.NET 身份)使用户具有不同的属性
【发布时间】:2021-01-14 23:07:50
【问题描述】:

假设有两种类型的用户:

1- 卖家
2- 买家

每种类型都有其独有的属性。按照这个类比,买家会有购物车之类的东西,而卖家会有库存。买家无需拥有和库存等。

在定义我的 IdentityUser 实现时,

a) 它是否应该拥有所有属性(无论是买方还是卖方)并根据具有身份验证的用户的角色来限制对属性的访问?

b) 或者,有没有办法让角色拥有自己的属性?

我问这个是因为我的直觉告诉我在数据库中有空字段(即卖家与购物车项目无关,所以为什么要有空字段或具有这种关系的表)是一种不好的方式和这个一起去。

注意。我目前正在使用 .NET Framework,但是,如果最好(或更简单)的答案是在 .NET Core 上,那么升级没有问题,因为这是一个新项目。

编辑。真正的应用程序不是关于卖家和买家的,比这更复杂一些。对此进行扩展似乎不正确,因为核心问题是拥有两种用户,并且每种用户都以几乎完全不同的方式与应用程序交互。如果某人是第 1 类用户,他们不能要求成为第 2 类用户,他们必须注册一个新帐户。

【问题讨论】:

  • 我不认为 IdentityUser 会支持按层次结构的表,但您可以添加具有 1-1 FK 的买方/卖方表。
  • @JeremyLakeman 是的,我在想类似的事情,但感觉就像在解决 Identity 而不是使用它......但我可能最终会这样做,谢谢你的建议

标签: c# asp.net asp.net-core asp.net-identity


【解决方案1】:

您的设计没有明显的问题。用户可以申请成为卖家,这会导致角色发生变化。

如果你的业务比较复杂,可以单独设计seller表。用户申请成为卖家时,可以是新用户,也可以是买家。当用户已经注册为买家时,只需将现有身份复制到卖家表单并填写附加信息即可。

【讨论】:

  • 我不希望注册为买家的用户只是要求成为卖家(该应用程序并不是真正的市场,我使用卖家/买家的类比来更好地解释我的问题)。如果卖家/买家想成为买家/卖家,他们需要使用不同的帐户进行注册。抱歉,如果这个遗漏使问题变得混乱。
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 2021-09-14
  • 2014-07-22
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2014-11-14
相关资源
最近更新 更多