【愚公系列】2022年03月 .NET架构班 011-ABP vNext 用户身份模块

举报
愚公搬代码 发表于 2022/03/02 15:57:58 2022/03/02
【摘要】 一、用户身份模块在ABP vNext项目中集成用户身份,就叫做用户身份模块目的:在项目中使用用户身份模块,保证系统的安全。如果没有用户,我们的系统可以被任何人访问,谁都可以进行攻击。 1.用户身份模块源码下载地址:https://github.com/abpframework/abp/tree/dev/modules/identity 二、集成用户身份模块 1.EBusiness.Doma...

一、用户身份模块

在ABP vNext项目中集成用户身份,就叫做用户身份模块

目的:在项目中使用用户身份模块,保证系统的安全。

如果没有用户,我们的系统可以被任何人访问,谁都可以进行攻击。

1.用户身份模块源码

下载地址:

https://github.com/abpframework/abp/tree/dev/modules/identity

二、集成用户身份模块

1.EBusiness.Domain.Shared集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Domain.Shared

2、然后在EBusinessDomainSharedModule文件上增加

[DependsOn(
        typeof(AbpIdentityDomainSharedModule)
        )]
    public class EBusinessDomainSharedModule : AbpModule

 {}

2.EBusiness.Domain集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Domain

2、然后在EBusinessDomainModule文件上增加

[DependsOn(
  typeof(AbpIdentityDomainModule)
 )]
 public class EBusinessDomainSharedModule : AbpModule
 {}

3.EBusiness.EntityFrameworkCore集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.EntityFrameworkCore

2、然后在EBusinessEntityFrameworkCoreModule文件上增加

[DependsOn(
        typeof(AbpIdentityEntityFrameworkCoreModule)
        )]
    public class EBusinessEntityFrameworkCoreModule: AbpModule

 {}

3、然后在EBusinessDbContext类上实现IIdentityDbContext上下文

 public DbSet<IdentityUser> Users { get; set; }
 public DbSet<IdentityRole> Roles { get; set; }
 public DbSet<IdentityClaimType> ClaimTypes { get; set; }
 public DbSet<OrganizationUnit> OrganizationUnits { get; set; }
 public DbSet<IdentitySecurityLog> SecurityLogs { get; set; }
 public DbSet<IdentityLinkUser> LinkUsers { get; set; }

4、然后在EBusinessDbContext类上添加

 [ReplaceDbContext(typeof(IIdentityDbContext))]
    [ConnectionStringName("Default")]
    public class EBusinessDbContext : 
        AbpDbContext<EBusinessDbContext>,
        IIdentityDbContext
    {}

5、然后在OnModelCreating方法中添加

 protected override void OnModelCreating(ModelBuilder builder)
 {
 	base.OnModelCreating(builder);

    /* Include modules to your migration db context */
    .....          
    builder.ConfigureIdentity();
    .....
 }

6、然后在EBusiness.EntityFrameworkCore生成迁移文件
使用PCM生成迁移文件

 Add-Migration Created_Product_Entity -c EBusinessDbContext
 Update-Database

7、查询数据表生成了很多用户表

4.EBusiness.Application.Contracts集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Application.Contracts

2、然后在EBusinessApplicationContractsModule文件上增加

[DependsOn(
        typeof(AbpIdentityApplicationContractsModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule

 {}

5.EBusiness.Application集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Application.Contracts

2、然后在EBusinessApplicationModule文件上增加

[DependsOn(
        typeof(AbpIdentityApplicationModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule

 {}

6.EBusiness.HttpApi集成用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Application.Contracts

2、然后在EBusinessHttpApiModule文件上增加

[DependsOn(
        typeof(AbpIdentityHttpApiModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule
 {}

三、使用用户身份模块

1、先启动EBusiness.HttpApi.Host

dotnet run 

2、用户登录
登录之后会拿到身份令牌
在这里插入图片描述

四、用户身份其他客户端使用

1.EBusiness.Web页面访问用户身份模块

1、先在项目中通过Nuget下载

Volo.Abp.Identity.Web

2、然后在EBusinessApplicationModule文件上增加

[DependsOn(
	typeof(AbpIdentityWebModule)
)]
 public class EBusinessWebModule: AbpModule
 {}

2.OA系统调用用户模块(动态API客户端)

1、先在项目中通过Nuget下载

Volo.Abp.Identity.HttpApi.Client

2、然后在OA文件上增加

 [DependsOn(
	typeof(AbpIdentityHttpApiClientModule)
 )]
 public class OAModule: AbpModule
 {}

3.然后在控制七直接属性注入服务

public IIdentityUserAppService identityUserAppService { set; get; } // 用户身份调用
public IIdentityRoleAppService identityRoleAppService { set; get; } // 用户角色调用
public IAccountAppService accountAppService { set; get; } // 账户模块调用
public IIdentityUserLookupAppService iIdentityUserLookupAppService { set; get; } // 用户搜索调用
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。