OWIN,Katana 與 ASP.NET Identity

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

雖然不需理解 OWIN 就可以開始使用 ASP.NET Identity,但是 ASP.NET Identity 實作為一組Open Web Interface for .NET(OWIN) 中介軟體元件,瞭解 OWIN 概念對於後續 MVC 的整合會有一定的幫助。

OWIN 是一組技術規格,以開放式標準公開,主要的概念是透過於 應用程式與托管環境間嵌入抽象層,移除應用程式與伺服器的耦合關係,讓應用程式的開發不受底層環境牽制,變得更為彈性。

微軟建立 Katana 專案實踐 OWIN 標準,提供支援 ASP.NET 應用使用 OWIN 服務所需的底層元件集合,整合於命名空間 Microsoft.Owin 並以 nuget 套件形式提供應用程式專案使用。

特定的應用程式服務-例如 ASP.NET Identity 支援的使用者驗證與授權服務,基於標準實作為一組 OWIN 中介軟體元件,由於 OWIN 獨立存在,因此 ASP.NET 開發人員不需要為了整合驗證與授權服務被綁在 .NET Framework 上。

Figure 1. Web 應用程式整合 OWIN/Katana 架構概念
有了 OWIN/Katana  ,我們就可以在這個環境下,針對各種特定的功能,發展專屬的小型元件,也就是所謂的 OWIN中介軟體,相較於功能豐富的大型框架,這種透過小型元件提供應用程式功能的作法,每當有新的服務需求出現時,不需等待大型框架的整合,直接開發、使用獨立的元件即可,另外一方面也可以避免應用程式因為依賴框架,強制整合大量不符需求或是用不到的功能服務,這有助於精簡 Web 應用的程式規模,並大幅提升 Web 應用的開發彈性與效率。

除了 ASP.NET Identity ,包含 Web API、SignalR 等比較新的 Web 服務,均是基於 OWIN 發展的中介軟體元件,開發人員根據自己的需求選擇需要的服務即可。

回到 ASP.NET Identity ,要在 MVC 中使用 ASP.NET Identity,由於其為 OWIN 元件,因此必須於開發專案中,完成於 IIS 托管 OWIN 的設定。

第一個步驟是安裝套件 Microsoft.Owin.Host.SystemWeb,在專案中加入需要的 OWIN 組件參考。

由於  OWIN 應用程式都會有一個啟動類別,其中負責整合元件進應用程式中,因此必須建立此類別,Katana 會在全域命名空間或是組件名稱同名的命名空間中,尋找名稱為 Startup 的類別作為啟動類別,或是透過 assembly 屬性指定如下:

[assembly: OwinStartup(typeof(OwinDemo.Startup1))]

其中的 OwinDemo.Startup1 為啟動類別的完整名稱。

以下的影片建立一個基本的 ASP.NET MVC 空白專案,針對其中的步驟進行實際的示範說明,完成這成段影片的學習,接下來將正式進入 ASP.NET MVC Identity - 驗證與授權 課程單元的討論。






沒有留言: