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