- 基于Claim的验证
- 当请求到达服务端后,线程中会有身份信息,这个身份信息类一般都是实现了IPrincipal接口,并可以有多种实现,比如基于Claim的身份验证,那么就是ClaimsPrincipal类
- 每个ClaimPrincipal由多个ClaimIdentity组成,并通过Identities成员变量提供出来;也提供了Claims的成员变量,但其实来自于所有的ClaimIdentity。
- 可以从线程信息中获取当前的身份信息:IPrincipal currentPrincipal = Thread.CurrentPrincipal;
- 每个ClaimIdentity就是一个身份证
- 由多个Claim组成。
- Name字段通常是用户名
- 每个Claim可以理解为你的身份证的中的名字,性别等等的每一条信息。
- 身份信息中包含哪些项,这是应用自己来定义的,应用自己定义有哪些Claims。
- 应用应当类似于一个过滤器,在业务代码之前,先处理好身份验证信息,并放到线程中待用。
- 由于一个ClaimPrincipal有多个Claims,所以可以通过Type字段来过滤出想要的某个信息,如Category/Email等
- 当请求到达服务端后,线程中会有身份信息,这个身份信息类一般都是实现了IPrincipal接口,并可以有多种实现,比如基于Claim的身份验证,那么就是ClaimsPrincipal类
- Identity Server