环境配置及数据库配置

项目开发环境: .net core 2.2, 请确保安装了相关SDK

  • 此项目已经完全达到生产使用的条件,但在某些地方还不太完善,需要优化细节。
  • 我也是刚刚接触identityServer4的新手,对于新手而言有一个吸引力的项目往往可以 有耐心学习下去。这里将详细记录我在使用过程中的配置及功能拓展,项目中较作者的源 码有少些改动,目的是为了避免额外的配置及让新手掉进坑里。我会使文档尽量的详细。
  • 该部分将详细介绍项目环境配置,及数据库生成及种子数据迁移。

常量及配置文件配置

常量配置

(此处的常量配置如无特别需要无需修改项目中的配置)

  • admin管理端项目常量文件位置在Configuration下Constants文件夹内。

常量的主要作用是用来进行配置文件名称的表示,如数据库连接名称,客户端策略,客户端配置等,除非特别需求,

一般情况下,无需改常量配置。

  • IdentityServer 项目常量位于Configuration下Constants文件夹内:

需要注意,这里面的常量属于用户声明类型的常量,用来实现地址,国籍,区域等拓展属性,可以方便拓展

用户属性。如无特别需要可以不用修改。


配置文件配置

项目中管理端,服务端配置文件均位于 appsettings.json文件中

管理端配置

  • ConnectionStrings(数据库连接):

这里用来配置数据库的连接字符串,可以分开配置,不同的上下文,项目中目前使用的单一数据库。

如需多数据库需要自行配置,数据源目前系统集成了SQL server, MySQL, PostgreSQL, SQLite

的存储库,通过配置即可切换数据库。

  • SqlDbType(数据库类型设置)

配置完数据库连接后,需要配置数据库类型(1 Sqlserver, 2 Mysql, 3 pgsql, 4 sqlite)

  • AdminConfiguration(管理端客户端属性配置)

这里配置管理端的客户端属性,包括服务端连接,跳转地址,作用域,密钥等,根据实际需要更改或按默认值。

  • Serilog(日志配置)这里面的配置根据实际需要设置

服务端配置

  • 数据库相关配置同管理端
  • CertificateConfiguration(证书相关配置https配置)
  • RegisterConfiguration(是否启用注册功能)
默认为true,用来设置是否开启用户注册功能。
  • ExternalProvidersConfiguration(第三方登录配置)
系统使用的GitHub作为演示,后面会详细介绍集成GitHub登录。
  • SmtpConfiguration(邮件配置)
此处配置邮件服务地址,后续用来邮箱确认,找回密码功能使用。
  • LoginConfiguration(登录名选项)
默认使用的username作为登录账号,可以配置Email用邮箱作为登录账号。
  • AdminConfiguration(管理端地址)

数据库配置及数据迁移

按上述配置,设置好数据库连接和数据库类型,下面进行数据库生成和数据迁移

  • 生成前删除管理端目录中的Data文件夹,如果没有则不用删除
  • 在VS工具中选择Nuget包管理器,选择包管理控制台,定位在Amin文件夹下依次执行下面的命令生成数据库及表:
  • 1 Asp.Net Core Identity DbContext:

 Add-Migration AspNetIdentityDbInit -context AdminIdentityDbContext -output Data/Migrations/Identity

 Update-Database -context AdminIdentityDbContext
  • 2 Logging DbContext:

Add-Migration LoggingDbInit -context AdminLogDbContext -output Data/Migrations/Logging

Update-Database -context AdminLogDbContext
  • 3 IdentityServer configuration DbContext:

Add-Migration IdentityServerConfigurationDbInit -context IdentityServerConfigurationDbContext -output Data/Migrations/IdentityServerConfiguration

Update-Database -context IdentityServerConfigurationDbContext
  • 4 IdentityServer persisted grants DbContext:

Add-Migration IdentityServerPersistedGrantsDbInit -context IdentityServerPersistedGrantDbContext -output Data/Migrations/IdentityServerGrants

Update-Database -context IdentityServerPersistedGrantDbContext
  • 数据库迁移
在资源管理器文件夹下,admin项目下,在地址栏输入cmd,打开控制台:

执行命令: dotnet run /seed

等待一会项目正常运行,表示种子数据迁移成功,如果出现错误,应该是数据库连接或类型配置有误 仔细检查,再执行此命令

  • 迁移完成后关闭控制台命令。

运行项目

  • 在项目解决方案根目录上,右键,设置启动项,选择多启动项,依次将identityServer, admin两个项目
设置为启动,并将identityserver移动到第一个启动项
  • 设置完成后即可启动项目。