能夠參考老張的這個文章: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