C# 創(chuàng)建ASP.NET Core Web應(yīng)用程序 — 身份驗(yàn)證與授權(quán)
因?yàn)锳SP.NET Core并非僅關(guān)注一個(gè)操作系統(tǒng),所以其身份驗(yàn)證和授權(quán)協(xié)議也必須能跨平臺(tái)工作。OWIN 和OAuth是最流行的開源身份驗(yàn)證提供程序。OWIN代表Open Web Interface for .NET,它本身不是一個(gè)身份驗(yàn)證提供程序;但OWIN常與Katana關(guān)聯(lián)在一起,而Katana是一個(gè)身份驗(yàn)證提供程序。OWIN是一個(gè)規(guī)范,詳 細(xì)規(guī)定了Web服務(wù)器和Web應(yīng)用程序應(yīng)該如何分離。OWIN移除了 ASP.NET Core對(duì)IIS的依賴,使得通過Kestrel實(shí)現(xiàn)自托管成為現(xiàn)實(shí)。KatanaNuGet包中包含必要的庫來實(shí)現(xiàn)多類身份驗(yàn)證,如Windows和Forms身份驗(yàn)證。
OAuth是Microsoft、Facebook、Twitter、Google等公司公開的一個(gè)接口,供Web應(yīng)用程序用來進(jìn)行身份驗(yàn)證。在移動(dòng)設(shè)備或?yàn)g覽器中運(yùn)行的應(yīng)用程序常提示客戶端使用Facebook或Microsoft憑據(jù)來訪問網(wǎng)站。在這些情況中,使用的協(xié)議就是OAuth。在ASP.NET Core Web應(yīng)用程序中實(shí)現(xiàn)OAuth所需的類和方法包含在AspNet.Security.OAuth.Providers 名稱空間中。
身份驗(yàn)證過程確認(rèn)用戶確實(shí)是真實(shí)用戶。通常,當(dāng)某人創(chuàng)建一個(gè)新賬戶時(shí),這個(gè)賬戶會(huì)關(guān)聯(lián)一個(gè)電子郵件地址和一個(gè)密碼。應(yīng)用程序?qū)⑾蛴脩籼峁┑碾娮余]件地址發(fā)送一個(gè)確認(rèn)郵件,用戶單擊這個(gè)郵件后,注冊(cè)過程就完成了。之后,使用該電子郵件和密碼來訪問資源,就能驗(yàn)證確實(shí)是創(chuàng)建該賬戶的用戶在訪問資源。這個(gè)過程的另一個(gè)方面是授權(quán)。授權(quán)過程定義了用戶能訪問哪些功能和內(nèi)容。這常稱為聲明(claim)。
在最簡(jiǎn)單的形式中,一些源代碼檢查是否存在對(duì)某個(gè)資源(如DealCard()方法)的聲明,如果存在,發(fā)出請(qǐng)求的發(fā)牌方就能調(diào)用該方法。
policy.RequireClaim{"DealerID");
聲明也可用名-值對(duì)形式表示,從而提供粒度更細(xì)的資源訪問。
policy.RequireClaira("DealerID", "1", "2", "3", "4","S"));
這段代碼表明,只有DealerlD等于1、2、3、4或5的發(fā)牌方才能調(diào)用DealCard()方法。
點(diǎn)擊加載更多評(píng)論>>