一直配置不好,今天告一段落,记录几个注意事项:
前提:本项目只考虑一个租户,一下描述中不考虑多租户的情况。
1、《角色》应该是一个可以用户在客户端里自定义的对象,而不是提前在程序里配置,对应的是abproles这个表里数据
这个表本身没有多少有用的信息,让角色成为角色的关键在与角色《权限》的定义,看权限表:
这个表每一行数据的意义在于 一个roleid对应的name(permission)是否为允许(IsGranted == 1)。
2、《用户》的定义包含了用户的一些基本信息,却不包含用户的角色
用户的角色是可以被改变的,储存在AbpUserRoles表中:
定义UserID和RoleID的对应关系。
此时此角色才能在abp中正常的被检查权限。检查权限的框架内流程参考:
[Abp 源码分析]十一、权限验证_dfdffdg8l00002001的博客-CSDN博客
3、用户和角色在设置种子数据时都要经过SetNormalizedName函数,因为发现默认的RoleManager取Role时是根据NormalizedName取的。