.NET身份验证            

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