前言
在上一篇文章中,我們學(xué)習(xí)了 CookieAuthentication 中間件,本篇的話主要看一下 Identity 本身。
最早2005年 ASP.NET 2.0 的時(shí)候開始, Web 應(yīng)用程序在處理身份驗(yàn)證和授權(quán)有了很多的變化,多了比如手機(jī)端,平板等,所以那個(gè)時(shí)候?yàn)榱诉m應(yīng)這種變化就引入了ASP.NET Membership,但是隨著時(shí)間的發(fā)展一些社交網(wǎng)站或者程序聚集了大量的用戶,比如Facebook,Twitter,QQ等,這個(gè)時(shí)候用戶希望能夠使用他們?cè)谶@些社交站點(diǎn)身份來登陸當(dāng)前網(wǎng)站,這樣可以免除注冊(cè)這些瑣碎而又必要的操作,用戶也不必記住大量的賬戶密碼。
又隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的開發(fā)者不只是關(guān)注具體業(yè)務(wù)代碼的編寫,轉(zhuǎn)變?yōu)殚_始關(guān)注應(yīng)用程序代碼的單元測(cè)試,這已經(jīng)是開發(fā)者關(guān)注的核心。所以在2008年,ASP.NET 團(tuán)隊(duì)引入了 MVC 框架,這樣來幫助開發(fā)者很方便的構(gòu)建單元測(cè)試,同時(shí)開發(fā)者希望他們的 Membership 系統(tǒng)也能夠做到這一點(diǎn)。
基于以上,ASP.NET Identity 應(yīng)運(yùn)而生。
Identity 要解決的問題
很多開發(fā)人員說他們不愿意使用Identity,自己實(shí)現(xiàn)要方便的多,OK,那么需求來了?以下就是我針對(duì)此次任務(wù)給你提出來的需求。
身份系統(tǒng)
- 可以同時(shí)被所有的ASP.NET 框架使用(Web MVC,Web Forms,Web Api,SignalR)
- 可以應(yīng)用于構(gòu)建 Web, 手機(jī),存儲(chǔ),或者混合應(yīng)用。
能夠?qū)τ脩糍Y料(User Profile)很方便的擴(kuò)展
- 可以針對(duì)用戶資料進(jìn)行擴(kuò)展。
持久化
- 默認(rèn)把用戶信息存儲(chǔ)在數(shù)據(jù)