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序列化:

  1. 自定义ContractResolver:重写CreateProperties方法,最后将其实例赋值给jsonOptions.SerializerSettings.ContractResolver
  1. 自定义JsonConverter:用jsonOptions.SerializerSettings.Converters.Add方法添加其实例
posted @ 2026-04-27 10:20  woncode  阅读(10)  评论(0)    收藏  举报