前言
在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 組件庫,負(fù)責(zé)對用戶的身份進(jìn)行認(rèn)證,總體來說的話,沒有MVC 5 里面那么復(fù)雜,因?yàn)樵贛VC 5里面引入了OWIN的東西,所以很多初學(xué)者在學(xué)習(xí)來很費(fèi)勁,對于 Identity 都是一頭霧水,包括我也是,曾經(jīng)在學(xué) identity 這個東西前后花了一個多月來搞懂里面的原理。所以大部分開發(fā)者對于 Identity 并沒有愛,也并沒有使用它,會覺得被綁架。
值得慶幸的是,在 ASP.NET Core 中,由于對模塊的抽象化逐漸清晰,以及中間件的使用,這使得 Identity 的學(xué)習(xí)和使用路線變得更加平易近人,下面就讓我們一起來看看吧。
Getting Started
在開始之前,讓我們先忘記它和Entity Framework的關(guān)系,也忘記它和Authentication的關(guān)系,我們先學(xué)習(xí)幾個英語單詞。
有這么幾個“單詞”你可能需要弄明白:
# 1: Claims
大家應(yīng)該都知道身份證長什么樣子的,如下:
其中,姓名:奧巴馬;性別:男;民族:肯尼亞;出生:1961.08.04,等等這些身份信息,可以看出都是一個一個的鍵值對,那如果我們想在程序中存這些東西,怎么樣來設(shè)計(jì)呢?對,你可能想到了使用一個字典進(jìn)行存儲,一個Key,一個Value剛好滿足需求。但是Key,Value的話感覺不太友好,不太面向?qū)ο?,所以如果我們做成一個對象的話,是不是更好一些呢?最起碼你可以用vs的智能提示了吧,我們修改一下,改成下面這樣:
//我給對象取一個名字叫`Claim`你沒有意見吧 public class Claim { public string ClaimT