如何将身份和用户管理添加到aspnetcore Web API中?

kika123

我正在使用3种类型的用户构建asp.net核心网络api:管理员,客户端和程序员。每个角色都有其自己的票证列表。这些是我已经添加的实体类:

 public class User

    {
        [Key]
        public Guid Id { get; set; }
        [Required]
        [MaxLength(50)]
        public string FirstName { get; set; }
        [Required]
        [MaxLength(50)]
        public string LastName { get; set; }
        [Required]        
        public string Address { get; set; }

        [Required]       
        public string Zip { get; set; }
        [Required]
        [Phone]
        public string PhoneNumber { get; set; }
        [Required]
        [EmailAddress]
        public string EmailAddress { get; set; }
        [Required]
        public Gender Gender { get; set; }
        [Required]
        [MaxLength(50)]
        public string UserName { get; set; }
        [Required]
        [MaxLength(50)]
        public string Password { get; set; }
        [Required]
        public Role Role { get; set; }

        public virtual Programmer Programmer { get; set; }

        public virtual Admin Admin { get; set; }

        public virtual Client Client { get; set; }
    }


public class Client
    {

        public Guid clientId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public virtual ICollection<Ticket> Tickets { get; set; } = new List<Ticket>();     
        public Guid Id { get; set; }
        public virtual User User { get; set; }
    }

 public class Admin
    {

        public Guid adminId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public virtual ICollection<Ticket> Tickets { get; set; } = new List<Ticket>();
        public Guid Id { get; set; }
        public virtual User User { get; set; }
    }

 public class Programmer
    {

        public Guid programmerId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public ProgrammingLanguage ProgrammingLanguage { get; set; }
        public Experience Experience { get; set; }
        public DetailOriented DetailOriented { get; set; }
        public FieldOfInterest FieldOfInterest { get; set; }


        public virtual ICollection<Ticket> Tickets { get; set; } = new List<Ticket>();

        public Guid Id { get; set; }
        public virtual User User { get; set; }

    }

我已经创建了常规的DbContext并使用该DbContext实现了api的功能。现在,我想将用户更改为IdentityUsers。我不确定是否应该新建一个将处理UserIdentity的项目,然后将这些用户传递给我的api(如果是,我如何将他们传递给api并与他们的票证连接,即我只在api中保留票证表?或像我已经做过的那样,将用户作为api的一部分(如果是,将用户更改为身份用户,以便以后可以查询其票证的最佳方法是什么?)。有人有任何提示/链接/类似的代码示例或其他内容吗?我会很感激 :)

纳法斯回合

开箱即用,Identity支持一组用户配置文件属性。最简单的解决方案是创建一个AppUser从IdentityUser继承类,其中包含所有用户类型的所有属性。还要为每种用户类型引入一个界面,并为其提供支持的属性。

class AppUser: IdentityUser, IAdmin, IProgrammmer, IClient {...}

基于与用户关联的IdentityRole,可以将AppUser实例强制转换为适当的接口以访问特定于用户的属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用SDK或Web Api将管理员添加到Azure DevOps中的团队?

来自分类Dev

如何将Web API文件夹添加到现有项目?

来自分类Dev

如何将Web API添加到现有的MVC Hottowel项目

来自分类Dev

如何将System.Web.Mvc版本5添加到项目引用中

来自分类Dev

如何将Web服务引用添加到类库项目.NET 4.0中

来自分类Dev

如何将CommandTimeout添加到web.config中的连接字符串

来自分类Dev

将共享身份验证添加到Classic ASP.NET Web窗体应用程序和Web API应用程序

来自分类Dev

如何将Web Animations API polyfill添加到使用Angular CLI创建的Angular 2项目中

来自分类Dev

如何将Angular项目添加到现有的.NET Core Web API项目中?

来自分类Dev

如何在ASP.NET MVC Web API中创建角色并将用户添加到角色

来自分类Dev

如何将具有动态内容的捆绑软件添加到ASP.NET Web优化中

来自分类Dev

如何将仅显示在Dash中的内容添加到Unity Launcher?(例如Chrome Web App快捷方式)

来自分类Dev

如何将仅显示在Dash中的内容添加到Unity Launcher?(例如Chrome Web App快捷方式)

来自分类Dev

如何将字段名称添加到C#Web服务的json输出中

来自分类Dev

在Web API中管理版本

来自分类常见问题

如何将Web API添加到现有的ASP.NET MVC(5)Web应用程序项目中?

来自分类Dev

如何将存储在web.config中的值添加到c#中的类属性(从Web配置文件而不是资源文件)

来自分类Dev

如何在Web Api中访问用户身份

来自分类Dev

将表添加到MVC和Web Api项目中的数据库

来自分类Dev

将cors添加到ASPX Web API 2 Hybrid

来自分类Dev

将Quartz添加到Web API项目。绩效问题

来自分类Dev

将字段添加到Web API返回对象

来自分类Dev

如何将白色添加到 Web 视图背景

来自分类Dev

如何将身份验证标头添加到axios挂钩请求中?

来自分类Dev

如何将SAML外部身份提供程序添加到Azure活动目录中?

来自分类Dev

无法将缓存添加到Web缓存容器中

来自分类Dev

将数组中的项目添加到Web表单

来自分类Dev

使用SOAP和curl将列添加到表中。如何将访问令牌添加到xml?

来自分类Dev

xcode 5:如何将UUID添加到xcode管理的配置文件中?

Related 相关文章

  1. 1

    如何使用SDK或Web Api将管理员添加到Azure DevOps中的团队?

  2. 2

    如何将Web API文件夹添加到现有项目?

  3. 3

    如何将Web API添加到现有的MVC Hottowel项目

  4. 4

    如何将System.Web.Mvc版本5添加到项目引用中

  5. 5

    如何将Web服务引用添加到类库项目.NET 4.0中

  6. 6

    如何将CommandTimeout添加到web.config中的连接字符串

  7. 7

    将共享身份验证添加到Classic ASP.NET Web窗体应用程序和Web API应用程序

  8. 8

    如何将Web Animations API polyfill添加到使用Angular CLI创建的Angular 2项目中

  9. 9

    如何将Angular项目添加到现有的.NET Core Web API项目中?

  10. 10

    如何在ASP.NET MVC Web API中创建角色并将用户添加到角色

  11. 11

    如何将具有动态内容的捆绑软件添加到ASP.NET Web优化中

  12. 12

    如何将仅显示在Dash中的内容添加到Unity Launcher?(例如Chrome Web App快捷方式)

  13. 13

    如何将仅显示在Dash中的内容添加到Unity Launcher?(例如Chrome Web App快捷方式)

  14. 14

    如何将字段名称添加到C#Web服务的json输出中

  15. 15

    在Web API中管理版本

  16. 16

    如何将Web API添加到现有的ASP.NET MVC(5)Web应用程序项目中?

  17. 17

    如何将存储在web.config中的值添加到c#中的类属性(从Web配置文件而不是资源文件)

  18. 18

    如何在Web Api中访问用户身份

  19. 19

    将表添加到MVC和Web Api项目中的数据库

  20. 20

    将cors添加到ASPX Web API 2 Hybrid

  21. 21

    将Quartz添加到Web API项目。绩效问题

  22. 22

    将字段添加到Web API返回对象

  23. 23

    如何将白色添加到 Web 视图背景

  24. 24

    如何将身份验证标头添加到axios挂钩请求中?

  25. 25

    如何将SAML外部身份提供程序添加到Azure活动目录中?

  26. 26

    无法将缓存添加到Web缓存容器中

  27. 27

    将数组中的项目添加到Web表单

  28. 28

    使用SOAP和curl将列添加到表中。如何将访问令牌添加到xml?

  29. 29

    xcode 5:如何将UUID添加到xcode管理的配置文件中?

热门标签

归档