加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Core Identity核心知识

发布时间:2020-12-16 09:28:38 所属栏目:asp.Net 来源:网络整理
导读:核心概念 Claims : 表示用户信息的一些 键值对 ,如姓名:张三,年龄:25,地址:北京中关村…… ClaimsIdentity : 表示一张/一种身份证明,或者你直接理解为是身份证。它是由多个Claim组成的。 ClaimsPrincipal : 一般来讲,一个人会有多重身份,如丈夫

核心概念

  • 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,或者其他一些操作缓存清空等。

?

?

?

未完待续……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读