ASP.NET Core会议管理平台实战_3、认证、授权表迁移

可以参考老张的这个文章:

https://www.cnblogs.com/laozhang-is-phi/p/10660403.html

创建这个类库
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
看一下IdentityUser是在哪一个库下面。Microsoft.Extensions.Identity.Stores
ASP.NET Core会议管理平台实战_3、认证、授权表迁移shiyon
使用Nuget去添加这个库。去实现IdentityUser
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

这个类也是提前就建好的。CongerenceConrseIdentityUser
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
继承IdentityUser
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
比如说我们要对用户禁用,默认是没有这个参数的。现在我们添加一个属性,Disabled属性
对Using进行删除和排序,就是删除多余的Using引用
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
创建ConferenIdentityDbContext数据库上下文的类

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
Nuget添加包
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
如果想添加其他的类,也可以去新建类,例如下面这个角色的类,继承的也是IdentityRole这个角色相关的类ASP.NET Core会议管理平台实战_3、认证、授权表迁移

项目表的迁移

在ConferenceCourse.Core类库下新建类ApiResources 里面定义两个常量
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
再新建类ApiScopes
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
同样是定义两个常量
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
ConferenceCourse.IdentityServer添加类库ConferenceCourse.Core的引用
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这样Config类里面的返回的ApiResource就添加引用了Core的命名空间的引用ASP.NET Core会议管理平台实战_3、认证、授权表迁移

配置客户端

第一个是认证个授权管理中心,第二服务端是基础接口,第三个是会议前台
也是复制过来的代码,有一些代码清理了,后续在来配置
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这里使用的是Credentials的方式,这里不允许使用Token,因为token暴露在浏览器是不大安全的
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
第二个这里用的是组合模式。
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这里是跨域
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
身份认证与授权服务,这里允许的Scopes是ConferenceBase
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
对应的就是这个常量baseASP.NET Core会议管理平台实战_3、认证、授权表迁移

startup配置

这是官方文档,意思是直接拷贝官方文档的这个地方的代码
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
视频中直接从自己写好的代码里复制过去了 ,然后又进行了一些删除和修改,我是真的蛋疼了。
添加包的引用
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
添加包的引用: IdentityServer4.AspNetIdentity
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
主要是这里用到 IdentityServer4.AspNetIdentity这个包
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

这里有两个EF的上下文:ConferenceCourseIdentityDbContext,还有一个PersistedGrantDbContext
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
PersistedGrantDbContext是在这个包里面
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
然后去添加这个包的引用
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

AddConfigurationStore是在哪个命名空间下?
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
然后添加这个包的引用:IdentityServer4.EntityFramework
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
迁移直接读的json文件内的配置
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
复制过来的这一段
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这样就完成了IdentityServer的配置。我只想说,这他妈的什么玩意啊

代码完成后,进行讲解

通过整理添加IdentityServer
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这里进行了封装

这里是开发者签名的方式
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
初始化数据生成表
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

通过运行去进行迁移。先生成迁移类,二是运行代码,然后地道用migrate
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

下面进行迁移

看官方文档是这两个上下文。直接复制过去
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这里就会生成了
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这里还添加了这个ConferenceCourseIdentityDbContext这个库的迁移
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

再去迁移ConferenceCourseDbContext
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

运行代码就会重新生成数据库,就是编译代码。就会自动去生成数据库文件了。

讲解本节课的主要内容

配置了标准的IdentityResource的几个Resource openid
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
然后创建了两个api resource,一个是基础服务的,一个是会议管理平台的Resource
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
然后是客户端,一共有四个客户端。一个是授权认证的客户端,都采用ClientId ClientSecret的方式进行授权,也就是ClientCrendentials这种方式
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
然后是Startup

app.UseIdentityServer里面就已经添加了app.UseAuthentication()。所以这里不需要再添加app.UseAuthentication()这个中间件了
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

在这里初始化数据库,刚才忘记了 ,然后需要重新编译代码,这样就会生成数据库和表了。
ASP.NET Core会议管理平台实战_3、认证、授权表迁移
程序运行起来
ASP.NET Core会议管理平台实战_3、认证、授权表迁移

打开sql server 数据库

ASP.NET Core会议管理平台实战_3、认证、授权表迁移
这个库主要是对用户的管理

ASP.NET Core会议管理平台实战_3、认证、授权表迁移

ASP.NET Core会议管理平台实战_3、认证、授权表迁移

上一篇:ASP.NET Core会议管理平台实战_2、基本概念的理解


下一篇:Java 中带参无返回值方法的使用