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

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. TP框架---thinkphp修改删除数据

    1.在控制器MainController里面写一个方法,调用Nation表中的数据. public function zhuyemian() { $n = D("Nation"); ...

  2. JS中try.. catch..的用法

    try 测试代码块的错误. catch 语句处理错误. throw 创建并跑出错误. try { //在这里运行代码 抛出错误 } catch(err) { //在这里处理错误 } 下面是一个实例: ...

  3. MongoDB在win7上的安装(精简版)

    1.下载mongdb的zip文件,解压后会发现有bin文件夹,在同层目录下建一个data目录, 2.在data目录下建一个log和db文件夹, 3.在log文件下建一个MongoDB.log 文件 4 ...

  4. 关于spring的bean

    1 spring bean的单例和多例 singleton 单例指的是,在需要该bean的地方,spring framework返回的是同一个值. prototype 多例指的是,在需要该bean的地 ...

  5. 2-phase-commit 3-phase-commit

    2 prepare commit rollback acknowledge

  6. 我的Android进阶之旅------>报 error: Apostrophe not preceded by \ 的错误解决办法

    今天对项目进行国际化翻译的时候控制台出现了以下的错误: res/values/strings.xml:100: error: Apostrophe not preceded by \ (in Sorr ...

  7. git 从远端拉取指定分支和推送本地某个分支到远端

    如题,可以直接从远端拉取某个分支,也可以直接将本地某个分支推送到远端. 原文链接:https://www.cnblogs.com/hamsterPP/p/6810831.html

  8. python3用pdfminer3k在线读取pdf文件

    import importlib import sys import random from urllib.request import urlopen from urllib.request imp ...

  9. POJ - 1426 Find The Multiple 【DFS】

    题目链接 http://poj.org/problem?id=1426 题意 给出一个数 要求找出 只有 0 和 1 组成的 十进制数字 能够整除 n n 不超过 200 十进制数字位数 不超过100 ...

  10. python之menu

    只有主菜单没有二级菜单的例子: from tkinter import * root=Tk() root.wm_title('同济大学财务管理系统') menubar=Menu(root)#指定菜单实 ...