前面的文章介紹了如何進(jìn)行權(quán)限控制,即訪問控制器或者方法的時(shí)候,要求當(dāng)前用戶必須具備特定的權(quán)限,但是如何在程序中進(jìn)行權(quán)限的分配呢?下面就介紹下如何利用Microsoft.AspNetCore.Identity.EntityFrameworkCore框架進(jìn)行權(quán)限分配。

在介紹分配方法之前,我們必須理解權(quán)限關(guān)系,這里面涉及到三個(gè)對象:用戶,角色,權(quán)限,權(quán)限分配到角色,角色再分配到用戶,當(dāng)某個(gè)用戶屬于某個(gè)角色后,這個(gè)用戶就具有了角色所包含的權(quán)限列表,比如現(xiàn)在有一個(gè)信息管理員角色,這個(gè)角色包含了信息刪除權(quán)限,當(dāng)張三這個(gè)用戶具有信息管理員角色后,張三就具備了信息刪除的權(quán)限。在某些特殊場景下,權(quán)限也可以直接分配到用戶,也就是說可以直接把某些特定的權(quán)限,繞過角色,直接分配給用戶。Microsoft.AspNetCore.Identity.EntityFrameworkCore框架中都提供了這樣的支持。

先把框架中主要的業(yè)務(wù)對象類介紹一下:

IdentityUser:表示一個(gè)用戶信息

IdentityRole:表示一個(gè)角色信息

IdentityRoleClaim<TKey>:表示角色具有的權(quán)限

IdentityUserClaim<TKey>:表示用戶具有的權(quán)限

IdentityUserRole<TKey>:表示用戶角色關(guān)系

網(wǎng)友評論