2020/01/27,

1.前言

这篇文章我想带领大家了解一下 ASP.NET Core 中如何进行的身份验证,在开始之前强烈建议还没看过我写的 Identity 系列文章的同学先看一下。

2.名词解释

做 Web 开发的都知道 HTTP 协议是无状态的,那么服务端如果想知道此次请求的用户是哪个登录的用户,那么就需要有一种标识每次都被传递到服务端,那么这个标识就是我们都知道的 Cookie(这里我们先不考虑header中携带标识的情况),服务端根据 Cookie 中携带的信息进行识别的一个过程就是身份验证,所有基于 WEB 的服务端都是如此,无关乎语言和框架。

 

在整个身份验证的过程中,又分为两个部分即认证和授权,很多同学区分不出来这两个东西,因为这两个单词看起来有点像,导致经常认错,这里我教大家一个小方法,就是记住他们的发音,使用某种方法让发音和汉字对应起来,这样就记住了。

Authentication [ɔ:,θenti'keiʃən] 认证

Authorization [,ɔ:θərai'zeiʃən, -ri'z-] 授权

分享一下我的方法,认证的拼音是(renzheng),其中 zheng 包含 en ,同样的 Authentication 也包含 en,这样我就记住了这个单词是认证,那么另外一个就是授权了。

认证:确定用户身份的一个过程。 注意是一个过程。

授权:确认用户可以做哪些事情,即权限。

3.基于 Claims 的身份

//证件单元
var claims = new List<Claim>()
{
    new Claim(ClaimTypes.Name,"奥巴马"),
    new Claim(ClaimTypes.NameIdentifier,"身份证号")
};

//使用证件单元创建一张身份证
var identity = new ClaimsIdentity(claims, "AuthenticationTypeXXX");

我们来看一下完整的一个代码

//证件单元
var claims = new List<Claim>()
{
    new Claim(ClaimTypes.Name,"奥巴马"),
    new Claim(ClaimTypes.NameIdentifier,"身份证号")
};

//使用证件单元创建一张cookie身份证
var cookie身份证 = new ClaimsIdentity(claims, "Cookies");

//创建一个人携带cookie身份证
var 人 = new ClaimsPrincipal(cookie身份证)
评论列表