能够参考老张的这个文章:html
http://www.javashuo.com/article/p-quzzugfv-k.htmlsql
建立这个类库
看一下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的命名空间的引用json
第一个是认证个受权管理中心,第二服务端是基础接口,第三个是会议前台
也是复制过来的代码,有一些代码清理了,后续在来配置
这里使用的是Credentials的方式,这里不容许使用Token,由于token暴露在浏览器是不大安全的
第二个这里用的是组合模式。
这里是跨域
身份认证与受权服务,这里容许的Scopes是ConferenceBase
对应的就是这个常量baseapi
这是官方文档,意思是直接拷贝官方文档的这个地方的代码
视频中直接从本身写好的代码里复制过去了 ,而后又进行了一些删除和修改,我是真的蛋疼了。
添加包的引用
添加包的引用: 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 数据库
这个库主要是对用户的管理
app