【公告】網站目前停止所有的課程訂閱服務,原有學員權益不受影響,造成不便還請見諒,我們正在打造更多課程以及圖書,包含 Python 為主的課程主題,未來將會合併且擴充目前的課程內容,提供全新課程訂閱服務,感謝學員的支持。

認識 AS.NET Identity

ASP.NET MVC 實務入門ASP.NET MVC Identity - 驗證與授權

ASP.NET Identity(以下簡稱Identity)是基於管理使用者需求發展的一組API,支援應用程式所需的使用者驗證與授權機制實作,可以用以取代之前的ASP.NET Membership 。

Identity 並非 ASP.NET MVC 的內建API,你也可以在 Web Forms 專案整合 ASP.NET Identity 的功能,接下來逐步說明 ASP.NET MVC整合ASP.NET Identity的實際步驟。

. 預先設定

在MVC中使用ASP.NET Identity,首先必須安裝列舉如下的三組套件:
  • Microsoft.AspNet.Identity.EntityFramework
  • Microsoft.AspNet.Identity.OWIN
  • Microsoft.Owin.Host.SystemWeb
我們可以透過套件管理器主控台輸入以下安裝指令,即可完成最新版本的套件安裝作業。

Install-Package Microsoft.AspNet.Identity.EntityFramework
Install-Package Microsoft.AspNet.Identity.OWIN
Install-Package Microsoft.Owin.Host.SystemWeb

完成安裝之後,接下來就可以開始運用Identity機制,為你的應用程式建構使用者的驗證與授權管理功能。

完整的使用者驗證授權機制相當複雜,我們從單一使用者驗證資料維護管理開始,逐步深入各種相關的實作細節。

. 管理使用者的類別

建立初步的使用者資料管理功能,包含使用者身份相關資料的建立、修改與刪除,以及查詢列舉等等,首先需要認識三個基礎類別,分別是IdentityDbContext、IdentityUser以及UserManager。

IdentityDbContext
Identity API將使用者資料儲存至實體資料庫,我們建立衍生自 IdentityDbContext 的專屬類別,搭配組態檔的連線字串,管理並維護資料庫連線作業,與Entity Framework 原理相同。

IdentityUser
使用者資料透過自訂的IdentityUser衍生類別實體物件進行封裝,支援有關使用者資訊的屬性存取,包含使用者名稱、電子郵件以及密碼等等。

UserManager
封裝使用者資料的IdentityUser物件,透過UserManager進一步管理維護,提供包含使用者的新增、刪除、修改以及查詢等各種功能方法成員,透過方法的呼叫,即可完成使用者資料的維護作業。

. Startup 類別

整合進 ASP.NET MVC 的Identity ,必須經過啟動程序才能正式運作,因此在開始之前,還要完成組態的設定工作,這一部份直接以 ASP.NET MVC 專案根目錄下的預設組態檔Startup.cs 進行處理,於其中定義Configuration方法,支援應用程式整合Identity所需的設定。相關的背景知識,請參考下一篇文章「OWIN,Katana 與 ASP.NET Identity」。

為了方便理解,接下來ASP.NET MVC Identity - 驗證與授權單元的實作說明,將利用空白專案進行逐步討論,不過Visual Studio 的MVC專案範本中,良好的整合了Identity,並提供了足夠的基礎功能,我們將直接利用範本的內容,擷取其中必要的程式碼進行說明。

沒有留言: