可以参考老张的这个文章:
https://www.cnblogs.com/laozhang-is-phi/p/10660403.html
创建这个类库
看一下IdentityUser是在哪一个库下面。Microsoft.Extensions.Identity.Stores
shiyon
使用Nuget去添加这个库。去实现IdentityUser
这个类也是提前就建好的。CongerenceConrseIdentityUser
继承IdentityUser
比如说我们要对用户禁用,默认是没有这个参数的。现在我们添加一个属性,Disabled属性
对Using进行删除和排序,就是删除多余的Using引用
创建ConferenIdentityDbContext数据库上下文的类
Nuget添加包
如果想添加其他的类,也可以去新建类,例如下面这个角色的类,继承的也是IdentityRole这个角色相关的类
项目表的迁移
在ConferenceCourse.Core类库下新建类ApiResources 里面定义两个常量
再新建类ApiScopes
同样是定义两个常量
ConferenceCourse.IdentityServer添加类库ConferenceCourse.Core的引用
这样Config类里面的返回的ApiResource就添加引用了Core的命名空间的引用
配置客户端
第一个是认证个授权管理中心,第二服务端是基础接口,第三个是会议前台
也是复制过来的代码,有一些代码清理了,后续在来配置
这里使用的是Credentials的方式,这里不允许使用Token,因为token暴露在浏览器是不大安全的
第二个这里用的是组合模式。
这里是跨域
身份认证与授权服务,这里允许的Scopes是ConferenceBase
对应的就是这个常量base
startup配置
这是官方文档,意思是直接拷贝官方文档的这个地方的代码
视频中直接从自己写好的代码里复制过去了 ,然后又进行了一些删除和修改,我是真的蛋疼了。
添加包的引用
添加包的引用: IdentityServer4.AspNetIdentity
主要是这里用到 IdentityServer4.AspNetIdentity这个包
这里有两个EF的上下文:ConferenceCourseIdentityDbContext,还有一个PersistedGrantDbContext
PersistedGrantDbContext是在这个包里面
然后去添加这个包的引用
AddConfigurationStore是在哪个命名空间下?
然后添加这个包的引用:IdentityServer4.EntityFramework
迁移直接读的json文件内的配置
复制过来的这一段
这样就完成了IdentityServer的配置。我只想说,这他妈的什么玩意啊
代码完成后,进行讲解
通过整理添加IdentityServer
这里进行了封装
这里是开发者签名的方式
初始化数据生成表
通过运行去进行迁移。先生成迁移类,二是运行代码,然后地道用migrate
下面进行迁移
看官方文档是这两个上下文。直接复制过去
这里就会生成了
这里还添加了这个ConferenceCourseIdentityDbContext这个库的迁移
再去迁移ConferenceCourseDbContext
运行代码就会重新生成数据库,就是编译代码。就会自动去生成数据库文件了。
讲解本节课的主要内容
配置了标准的IdentityResource的几个Resource openid
然后创建了两个api resource,一个是基础服务的,一个是会议管理平台的Resource
然后是客户端,一共有四个客户端。一个是授权认证的客户端,都采用ClientId ClientSecret的方式进行授权,也就是ClientCrendentials这种方式
然后是Startup
app.UseIdentityServer里面就已经添加了app.UseAuthentication()。所以这里不需要再添加app.UseAuthentication()这个中间件了
在这里初始化数据库,刚才忘记了 ,然后需要重新编译代码,这样就会生成数据库和表了。
程序运行起来
打开sql server 数据库
这个库主要是对用户的管理