NetCore 理解ASP.NET Core验证模型(Claim, ClaimsIdentity, ClaimsPrincipal)不得不读的英文博文
这篇英文博文是 Andrew Lock 写的 Introduction to Authentication with ASP.NET Core 。
以下是简单的阅读笔记:
ASP.NET Core 的验证模型是 claims-based authentication 。Claim 是对被验证主体特征的一种表述,比如:登录用户名是…,email是…,用户Id是…,其中的“登录用户名”,“email”,“用户Id”就是ClaimType。
You can think of claims as being a statement about…That statement consists of a name and a value.
对应现实中的事物,比如驾照,驾照中的“身份证号码:xxx”是一个claim,“姓名:xxx”是另一个claim。
一组claims构成了一个identity,具有这些claims的identity就是 ClaimsIdentity ,驾照就是一种ClaimsIdentity,可以把ClaimsIdentity理解为“证件”,驾照是一种证件,护照也是一种证件。
ClaimsIdentity的持有者就是 ClaimsPrincipal ,一个ClaimsPrincipal可以持有多个ClaimsIdentity,就比如一个人既持有驾照,又持有护照。
理解了Claim, ClaimsIdentity, ClaimsPrincipal这三个概念,就能理解生成登录Cookie为什么要用下面的代码?
var claimsIdentity = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, loginName) }, "Basic");
var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
await context.Authentication.SignInAsync(_cookieAuthOptions.AuthenticationScheme, claimsPrincipal);
要用Cookie代表一个通过验证的主体,必须包含Claim, ClaimsIdentity, ClaimsPrincipal这三个信息,以一个持有合法驾照的人做比方,ClaimsPrincipal就是持有证件的人,ClaimsIdentity就是证件,"Basic"就是证件类型(这里假设是驾照),Claim就是驾照中的信息。
NetCore 理解ASP.NET Core验证模型(Claim, ClaimsIdentity, ClaimsPrincipal)不得不读的英文博文相关推荐
- asp绑定gridview属性_理解ASP.NET Core中的模型验证
当MVC执行模型绑定后,为了验证绑定为参数提供的值是否符合预期,还需要进行模型验证. 一.理解模型验证 模型验证是指模型绑定后对Action参数进行验证的过程.它会根据事先定义的规则对参数的值进行验证 ...
- 快速理解ASP.NET Core的认证与授权
ASP.NET Core的认证与授权已经不是什么新鲜事了,微软官方的文档对于如何在ASP.NET Core中实现认证与授权有着非常详细深入的介绍.但有时候在开发过程中,我们也往往会感觉无从下手,或者由 ...
- 全面理解 ASP.NET Core 依赖注入
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
- ASP.NET Core MVC 模型绑定用法及原理
前言 查询了一下关于 MVC 中的模型绑定,大部分都是关于如何使用的,以及模型绑定过程中的一些用法和概念,很少有关于模型绑定的内部机制实现的文章,本文就来讲解一下在 ASP.NET Core MVC ...
- core控制器属性注入的用处_理解 ASP.NET Core 依赖注入
DI在.NET Core里面被提到了一个非常重要的位置,介绍一下.NET Core的DI实现以及对实例生命周期的管理,在控制台以及Mvc下如何使用DI,以及如何把默认的Service Contain ...
- 理解ASP.NET Core中的中间件
中间件是ASP.NET Core的一个重要特点,ASP.NET Core应用程序之所以能够灵活地处理各种各样的请求,完成都是由于中间件,那么它究竟是怎么一回事呢? 一.理解中间件 ASP.NET Co ...
- 深入理解ASP.NET Core依赖注入
概述 ASP.NET Core可以说是处处皆注入,本文从基础角度理解一下原生DI容器,及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器. 什么是依赖注入 百度百科中对于依赖注入的定义:控制反转( ...
- 【netcore】 ASP.NET Core 中间件
基本概念 中间件是一种装配到应用管道以处理请求和响应的软件. 每个组件: 选择是否将请求传递到管道中的下一个组件. 可在管道中的下一个组件前后执行工作. 请求委托用于生成请求管道. 请求委托处理每个 ...
- asp.netcore oracle,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...
Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...
最新文章
- VBA【遍历每个工作表并将工作表表名赋予B2单元格】
- html哪个属性不会脱离文档流,html 在不给高的时候使用float为什么下面的文档会脱离文档流...
- 安装配置nginx加载concat模块
- 牛客网 【每日一题】5月20日题目 简单瞎搞题
- 会计用计算机很快是,40个超实用电脑快捷键,老会计都在用
- IDEA中Maven项目中界面右边的Maven Projects窗口找不到不出来
- 如何在vue中使用less
- Android 中关于属性动画的一些思考,或许能为你解决一定的性能问题
- Excel-一元线性回归和多元线性回归(借助数据分析功能和直接计算)
- 3dsMax学习笔记01_用VRayMtl材质制作玻璃材质
- Arcgis空间分布方向性分析
- 我的职业性格测评报告
- 融易投3周年庆——欢乐送豪礼
- 基于Java代码自动提交Spark任务
- 24.STM32的IO口扩展PCF8574
- TCL集团2013校园招聘C/C++方向笔试题
- HTML\CSS知识点(一)
- 我的第一个网站——MISDream(四):网站的发布与云服务器的搭建
- python美观代码_为何 Python 代码要写得美观而明确
- PHP微信柏拉图性格标签生成器源码
热门文章
- Unable to resolve table ‘XXX‘ 的解决方案
- eclipse卸载自带的maven
- 如何翻译Word文档?分享几种翻译方法
- 自考 计算机英语作文,自考英语作文范文三篇
- php获取下拉菜单多选值,PHP 下拉菜单多选
- 计算机专业应届生简历英语作文,计算机专业英文简历范文(一)
- 仅需6200美元,高性价比构建3块2080Ti的强大工作站
- Shader 反射光(reflection)
- Error in library(nutshell) : 不存在叫‘nutshell’这个名字的程辑包
- Python 背后的发展,让我越想越后怕...