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

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 数据库


这个库主要是对用户的管理

ASP.NET Core会议管理平台实战_3、认证、授权表迁移的更多相关文章

  1. ASP.NET Core会议管理平台实战_汇总贴

    ASP.NET Core会议管理平台实战 课程地址:https://ke.qq.com/course/389673?from=800004097#term_id=100464670 ASP.NET C ...

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

    id Token携带用户的信息 AccessToken:是否有权限访问资源 看数据库的表,Client相关的表,api的相关的表 Resources把用户的简介抽象出来到IdentityClaims表 ...

  3. ASP.NET Core会议管理平台实战_4、参数校验、操作结果封装,注册参数配置

    登陆和注册之前,需要封装 前端参数的校验,ajax的封装 参数校验,创建公共的类 ,它是一个静态类 这样在调用的时候,直接一句话就可以了,这就是封装的好处 空字符串的校验 调用方式 EF的源码里面有这 ...

  4. ASP.NET Core会议管理平台实战_1、开篇介绍

    用到四个数据库

  5. Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  6. Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  7. Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密

    本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1.  摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...

  8. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  9. Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

    1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...

随机推荐

  1. SPOJ SUBLEX - Lexicographical Substring Search 后缀自动机 / 后缀数组

    SUBLEX - Lexicographical Substring Search Little Daniel loves to play with strings! He always finds ...

  2. 在做RTSP摄像机H5无插件直播中遇到的对接海康摄像机发送OPTIONS心跳时遇到的坑

    我们在实现一套EasyNVR无插件直播方案时,选择了采用厂家无关化的通用协议RTSP/Onvif接入摄像机IPC/NVR设备,总所周知,Onvif是摄像机的发现与控制管理协议,Onvif用到的流媒体协 ...

  3. Grunt 学习笔记【2】---- 配置和创建任务

    本文主要讲Grunt任务配置. 说明:本文所有示例都基于Grunt 0.4.5版本. 一 说明 使用Grunt实现项目的打包等工程化工作,实际上是通过Grunt提供的机制和插件,配置一个个任务(例如: ...

  4. 【题解】Jury Compromise(链表+DP)

    [题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...

  5. 【题解】P1407国家集训队稳定婚姻

    [题解][P1407 国家集训队]稳定婚姻 很好的一道建模+图论题. 婚姻关系?很像二分图匹配呀,不过不管怎么办先建模再说.婚姻关系显然用图方面的知识解决.建图! 它给定的是字符串,所以我们使用\(a ...

  6. centos 7 PostgreSQL一些简单问题以及解决办法

    问题:org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are corre ...

  7. 链表的C++实现

      有的时候,处于内存中的数据并非连续的.那么这时候.我们就须要在数据结构中加入一个属性.这个属性会记录以下一个数据的地址.有了这个地址之后.全部的数据就像一条链子一样串起来了,那么这个地址属性就起到 ...

  8. php分10个不同等级压缩优化图片(PNG)

    今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压 ...

  9. 小记tensorflow-1:tf.nn.conv2d 函数介绍

    tf.nn.conv2d函数介绍 Input: 输入的input必须为一个4d tensor,而且每个input的格式必须为float32 或者float64. Input=[batchsize,im ...

  10. tensorflow:typeerror:‘noneType’ object is not callable

    程序运行报错 typeerror: ‘noneType’ object is not callable 解决方法:删除缓存文件,再次运行没有错误 删除__pycache__文件夹