ABP框架技术摘要
Claim和Permission
区别:
1.Claim(声明):
- 是一种通用的身份信息声明,通常用于描述用户的属性(如邮箱、姓名、角色等)。
- 在ABP和ASP.NETCoreIdentity中,Claim可以包含任意自定义信息。
- Claim主要用于身份认证和用户信息传递,不直接用于权限控制。
2.Permission(权限):
- 是ABP框架专门用于授权的概念,表示系统中的某个操作或资源访问权(如“用户管理”、“订单查看”)。
- Permission由开发者定义,并通过角色或直接分配给用户。
- ABP的权限系统基于Permission进行授权判断。
关联:
- 在ABP中,用户登录后,系统会把用户拥有的Permission作为Claim(类型为"Abp.Permission")添加到用户的Claims集合中。
- 授权时,ABP通过检查用户Claims中的PermissionClaim来判断用户是否有权限访问某个资源。
- 即Permission是权限的定义和分配,Claim是权限在用户登录后的一种携带和传递方式。
总结:
- Claim是一种通用声明,Permission是专门的权限定义。
- Permission最终会以Claim的形式存储在用户的身份信息中,用于授权判断。
参考:https://docs.abp.io/zh-Hans/abp/latest/Authorization
abp自定义json序列化:
- 自定义ContractResolver:重写CreateProperties方法,最后将其实例赋值给jsonOptions.SerializerSettings.ContractResolver
- 自定义JsonConverter:用jsonOptions.SerializerSettings.Converters.Add方法添加其实例

浙公网安备 33010602011771号