【愚公系列】2022年03月 .NET架构班 011-ABP vNext 用户身份模块
一、用户身份模块
在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; } // 用户搜索调用
- 点赞
- 收藏
- 关注作者
评论(0)