当前位置 : 主页 > 网络编程 > ASP >

ASP.NET Core Identity核心知识

来源:互联网 收集:自由互联 发布时间:2021-06-24
核心概念 Claims : 表示用户信息的一些 键值对 ,如姓名:张三,年龄:25,地址:北京中关村…… ClaimsIdentity : 表示一张/一种身份证明,或者你直接理解为是身份证。它是由多个Cl

核心概念

  • Claims : 表示用户信息的一些键值对,如姓名:张三,年龄:25,地址:北京中关村……
  • ClaimsIdentity : 表示一张/一种身份证明,或者你直接理解为是身份证。它是由多个Claim组成的。
  • ClaimsPrincipal : 一般来讲,一个人会有多重身份,如丈夫、学生、教师……,对应的就会有多个”身份证明“(就是证明身份的证件):结婚证、学生证、教师证,此时就需要有个容器来携带这些证件了,它就是:ClaimsPrincipal,这个词怎么翻译呢?我们先来看一下principal的名词意思:首长,负责人; 主要演员,主角; [法]委托人,当事人; 本金;所以暂时就叫它为:证件当事人,但是总觉得怪怪的,所以就改一下,叫它证件持有者;另外,我认为ClaimsPrincipal这个类的名字应该叫成ClaimsIdentityPrincipal,可能是出于简化的目的,才简写的。

核心接口及中间件

  • IAuthenticationHandler : 对于特定方案,为每个请求创建处理认证的处理器。它是一个接口,只有四个方法:AuthenticateAsync(),ChallengeAsync,ForbidAsync,InitializeAsync。如果你需要重写认证相关的东西,则实现这个接口。
  • Authentication中间件 : 这个中间件中,写了一个抽象类AuthenticationHandler,初步实现了IAuthenticationHandler,把具体的核心功能交给下游的实现类来完成。

 

 

asp.net identity UserSecurityStamp的作用

UserSecurityStamp主要是用来对用户安全相关的信息做一个快照。在使用asp.net identity 的 CreateAsync(TUser user) 创建一个用户的时候,如果开启了SupportsUserSecurityStamp那么就会生成一个UserSecurityStamp的claim添加到用户的claims中去。应用场景,假如说用户修改了密码或者是修改了角色,退出等涉及到用户安全相关的时候,这个时候数据库这个值就会改变。假如要读取浏览器cookie的账号密码做自动登录,可以通过检测cookie的这个值和数据库的这个值进行对比,从而可以使用户重新登录,更新cookie,或者其他一些操作缓存清空等。

 

 

 

未完待续……

网友评论