从基本 asp.net 身份用户创建继承用户或为每个角色实现不同的接口? [关闭]

Posted

技术标签:

【中文标题】从基本 asp.net 身份用户创建继承用户或为每个角色实现不同的接口? [关闭]【英文标题】:Create inheritance users from base asp.net identity user or implement different interfaces for each role? [closed] 【发布时间】:2021-11-24 00:37:16 【问题描述】:

我有两种类型的用户,它们都具有相同的属性,但每个都能够执行特定的操作。我可以为两种类型的用户使用相同的类并为每个角色实现不同的接口,还是应该使用继承? 例如:User 类实现了 IBuyer 和 ISeller。

【问题讨论】:

您需要考虑如何通过 EF 将不同的用户子类型正确映射到数据库表(如果您使用的是 EF,它有其自身的局限性)。您是否打算将自己的用户存储代码与 ASP.NET Identity 一起使用? 另外,您是否有首先要使用 ASP.NET Identity 的原因?您不需要使用它 - 如果您的用户数据模型与 ASP.NET Identity 的数据模型大不相同,那么您应该考虑自己做,否则您将不得不花费数小时与 ASP.NET Identity 的设计作斗争,这不会有好的结局。 【参考方案1】:

是的,您可以,但是,您为什么没有两个不同的用户类别?就像,买家类实现 IBuyer 和卖家类实现 ISeller,我认为这会让你的代码更清晰。您还可以添加一个 User 类,该类具有它们共享的基本属性,即使它们都是您所说的,它实现了一个名为 IUser 的接口以及它可能具有的共享方法,然后您的类买家和卖家可以从 User 继承并有各自独立的方法。无论如何,是的,你评论的也是可能的。

【讨论】:

以上是关于从基本 asp.net 身份用户创建继承用户或为每个角色实现不同的接口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 ASP.NET 核心身份用户属性保存在另一个表中

为 ASP.NET MVC 身份创建身份用户页面

C# ASP.NET;获取登录用户的 NetworkCredential 对象?

Asp.net Identity 2.0 更新用户

从 ASP.NET Core Web API 中的控制器访问用户身份

ASP.NET 中的用户身份验证