1

框架搭建

ABP vNext创建包含app和module两种模板,其中app方式所创建的模板包含用户、角色、权限管理,ABP基础配置IdentityServer的基础配置数据等功能。module模式是一个比较干净的服务,里面不包含默认业务功能。

ABP vNext创建包含app和module两种模板,其中app方式所创建的模板包含用户、角色、权限管理,ABP基础配置IdentityServer的基础配置数据等功能。module模式是一个比较干净的服务,里面不包含默认业务功能。

这里我们构建身份管理服务,需要用到ABP vNext框架自带的用户角色管理模块,所以采用app模式构建项目源码。项目名称为Demo.IdentityManager,构建命令如下:

abp new Demo.Identity -t app --ui none --separate-identity-server -dbms MySQL

这里

-t app 表示application模式 ,

--ui none 表示不使用UI界面,

--separate-identity-server 表示将身份认证服务IdentityServer和当前项目服务分开,

-dbms MySQL 表示使用MySQL数据库。

执行命令后,执行目录中会出现aspnet-core文件夹,将该文件夹中所有内容拷贝至项目解决方案的service/identitymanager目录下,将其中的IdentityServer项目移动至identityserver文件夹下,若直接添加IdentityServer项目到解决方案会报错找不到common.props,这是因为相对路径发生变化,可将identitymanager目录下的common.props文件复制一份到总解决方案sln所在目录

目录调整完成后,使用sln构建工具添加所有项目到总解决方案。添加后项目结构如下图:

因为IdentityServer项目相对路径发生变化,需删除并重新添加该项目对EntityFrameworkCore项目的引用。

如果不想使用ABP自带的单元测试可以将解决方案文件夹test及其下项目删除。

2

初始化数据库

在ABP vNext框架application模式代码创建的数据库中,会包含用户、角色、权限、配置等功能的表,以及IdentityServer框架各项数据库持久化数据的表。

application模式下所创建的项目中的DbMigrator项目包含创建、执行数据迁移并初始化数据的功能。

正常情况下我们修改DbMigrator项目的配置文件appsettings.json中的ConnectionStrings:Default字段改为我们所使用的数据库并执行该项目,即可创建所需要的数据库

但我当前所用版本6.0.1有一个小Bug,运行DbMigrator项目会卡在创建数据迁移这一步,需要我们修改数据库链接字符串后手动创建数据迁移并执行,使用dotnet-ef命令执行如下:

  1. 在EntityFramework项目目录下进入cmd命令行

  2. 确保dotnet-ef命令已安装并更新至最新版本,具体可参考:https://docs.microsoft.com/zh-cn/ef/core/get-started/overview/install

  3. 添加数据迁移

    dotnet-ef migrations add InitDb
  4. 执行数据迁移

    dotnet-ef database update -s ..\Demo.Identity.DbMigrator

执行完成后,数据库已创建成功,运行DbMigrator项目可完成数据初始化。

3

调整及测试

身份管理服务运行项目为Identity.HttpApi.Host,将此项目设置为启动项。

修改Identity.HttpApi.Host项目中的配置文件appsettings.json,修改数据库链接字符串:ConnectionStrings:Default,及Redis地址Redis:Configuration,按照服务规划我们给该服务设置的规划的端口号为5000,所以在appsettings.json中添加配置项:

"urls": "http://*:5000"

默认情况下,ABP vNext框架自带的用户角色权限等接口需要授权用户才可以访问,依据我们之前的设计,微服务中的各项服务不需要二次权限验证,这里我们全局忽略权限验证,否则调用时会报401错误。忽略方法为在IdentityHttpApiHostModule的ConfigureServices方法中添加以下内容:

context.Services.AddAlwaysAllowAuthorization();

以控制台方式启动项目Identity.HttpApi.Host项目,启动完成后通过浏览器访问http://localhost:5000/swagger/index.html,成功显示Swagger页面,测试/api/identity/users的Get方式接口,返回admin用户信息,说明服务配置成功。

end

更多精彩

关注我获得

ABP vNext微服务架构详细教程——身份管理服务相关推荐

  1. ABP vNext微服务架构详细教程——结束语

    ABP vNext微服务架构详细教程--简介 ABP vNext微服务架构详细教程--架构介绍 ABP vNext微服务架构详细教程--身份管理服务 ABP vNext微服务架构详细教程--基础服务层 ...

  2. ABP vNext微服务架构详细教程——项目部署

    1 基础配置 在之前的文章中,我们已经配置了Kubernetes集群并安装了管理工具Kubesphere,文章地址为:https://mp.weixin.qq.com/s/MgpdMv5A-fYxN7 ...

  3. ABP vNext微服务架构详细教程——架构介绍

    总体架构 所有应用服务.API网关.身份认证服务均部署在Kubernetes容器中,由Kubernetes提供应用配置.服务治理.服务监控等功能. 客户端所有访问均通过Kubernetes的Nginx ...

  4. ABP vNext微服务架构详细教程——分布式权限框架(上)

    1 简介 ABP vNext框架本身提供了一套权限框架,其功能非常丰富,具体可参考官方文档:https://docs.abp.io/en/abp/latest/Authorization 但是我们使用 ...

  5. ABP vNext微服务架构详细教程——简介

    简介 该系列文章主要展示ABP vNext框架在微服务架构下的用法,提供一套可落地的技术实现思路,并演示各服务在Kubernetes下的部署方案. 基础概念 ABP vNext 基于ASP.NET C ...

  6. ABP vNext微服务架构详细教程——基础服务层

    1 服务创建 在除身份管理相关服务以外的其他业务服务中,我们不需要包含用户角色权限管理功能模块,ABP vNext框架为我们提供了模块模式,其默认模板不包含身份管理相关模块,更适合用于搭建普通的业务微 ...

  7. ABP vNext微服务架构详细教程——分布式权限框架(下)

    3 公共组件 添加公共类库Demo.Permissions,编辑Demo.Permissions.csproj文件,将 <Project Sdk="Microsoft.NET.Sdk& ...

  8. abp vNext微服务框架分析

    abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究.我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来 ...

  9. 【转】abp vNext微服务框架分析

    abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究.我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来 ...

最新文章

  1. [sso]搭建CAS单点服务器
  2. finished with exit code -1073740791 (0xC0000409)解决方案
  3. python自学书籍推荐豆瓣-入门python有什么好的书籍推荐?
  4. 8月21日至8月27日技术积累
  5. 通过实验取证:TCP三次握手的过程
  6. 如何写一个能被手机打开的C语言小程序,如何用C语言中一些简单的语句做一个小程序,能够输入一个字符就会弹出一句话...
  7. Apache常见配置错误
  8. dot pairs 点_Dott入局欧洲共享单车市场 明年3月伦敦巴黎推出
  9. 大数据系统软件创新平台与生态建设
  10. 苹果推出雷雳 3 Pro连接线:黑色编织设计 售价949元
  11. [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
  12. 免费下载文档:给你介绍几个实用的免费下载网址
  13. CSRF跨站请求伪造漏洞
  14. Python 爬虫入门(一)——爬取糗百
  15. 在linux下如何修改DNS地址
  16. Android手动创建活动并注册AndroidManifest.xml
  17. CTS测试中testYuvBurst[1]项
  18. take credit for用法
  19. springBoot 报警告 Could not find acceptable represent
  20. 如何利用阿里云服务器快照策略为数据备份

热门文章

  1. 微信上传图文消息素材40007,invalid media_id hint
  2. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from
  3. IntelliJ IDEA代码分屏显示
  4. oracle sys可以登录,system权限不足,解决方法
  5. socket编程学习笔记
  6. 【操作系统】对操作系统的了解
  7. ubuntu 14.04 安装Java JDK
  8. Ruby:字符集和编码学习总结
  9. JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
  10. 电脑pin重置_如果忘记了如何重置Windows PIN