分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

.net core 之Claim

发布时间:2023-09-06 02:21责任编辑:白小东关键词:暂无标签

 

假设有这样一家动物园,这家动物园要门票,门票要从动物园门口的售票室买,购买后,能得到一张纸质的票据。纸很特殊,动物园验票能通过纸张来判断门票是不是真的,还能看出你有没有涂改门票。门票上还有时间,指示什么时候门票到期,只要门票没有到期,你就可以随意进出动物园

嗯,这么长个例子,其实和Claim没什么关系 :)

门票上有什么?我们来假设一下

门票上有,姓名,票价,性别,地址,【等等身份证一类的东东】

好了,我们假设的门票就这样,从门票的第二行(姓名...)开始,每一行都是一个Claim

有了上面的铺垫,我们接下来正式介绍下Claim

释义

Claim 本意有

  • vt.声称;索取;断言;需要
  • vi.提出要求
  • n.索赔;声称;(根据权利而提出的)要求;断言

断言是比较准确的释义,另外可以理解成声明,每一条claim 都代表了一条票据的信息,比如示例票据上的姓名等等。claim 的基本组成是 typevalue,上面票据中左侧的就是type右面就是value

在 .net core 基础类库中是含有Claim的实现类的,它的位置是

System.Security.Claims.Claim

我们看一个真是的claim的例子

{ ?"sub": "1234567890", ?"name": "John Doe", ?"iat": 1516239022}

这个例子中含有3个claim

  • sub subject 主题,往往指Id
  • name 就是name
  • iat issue at 发出时间

这个例子中的 type 都是 JWT RFC中的标准jwt claim,上面这个例子是一个jwt票据的一部分,而在identity 中,默认使用的是cookie 身份认证,所以使用的不是 jwt 票据,而是加密cookie票据(identity没有这样定义,这样写是为了和jwt票据区分开),但是票据里面的内容,jwt和 加密cookie都是一样的都是——“claim

再回顾下 claim是什么? 就是一条一条的 type-value 键值对,里面存储了身份证明信息

而承载claim的东西就是票据,票据有很多种 jwt 和cookie 都是主流,不过应用场景不一样,by the way 票据的英文名称是“token” ,你需要记住它,后续的文章中,我们会学习如何同时使用支持移动后端验证(jwt token)以及仅仅使用 jwt token

.net core 之Claim

原文地址:https://www.cnblogs.com/gaoliangchao/p/9923882.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved