開始
首先,新增專案時,這是屬於 ASP.Net Core Web應用程式確定後,第二個畫面有『變更驗證』按鈕
出現選單有四種選項,
一種是 Windows 驗證:如果你是用自己的區域網路執行應用程式
可以使用Windows驗證。會以本機或自身網域的帳戶進行驗證。
一種是工作或學校帳戶:
透過 Active Directory、Windows Azure Active Directory或 Office 365驗證使用者的應用程式
一種就是,今天要研究的個別使育者帳戶驗證,
使用者可以跟你的應用程式登錄帳戶,使用的方法有:在網站上建立使用者名稱和密碼或透過Facebook、Google、Microsoft Account、Twitter等社交網站的帳戶登入。
專案自動產生了很多目錄和程式碼,
如下圖,注意喔...其實子目錄下面還有很多程式.
無驗證的專案, 只產生了 Home這個控制器,和相關的檢視.(連Model都沒有!)
有勾選個別使用者帳戶驗證的專案, 產生的檔案很多:
- Controller: Home, Account, Manage
- Data: 一個資料庫連接, 與相關變更紀錄(Migration目錄)
- Model: ApplicationUser
- View Model : Account, Manage (其實裡面好多!!)
- Service: Message, Email, SMS
- View: Share, Home, Account, Manage,
這個專案一建立完,就可以執行.
我們等等來看看他~~~概念
我找了網路資料,有篇寫了關於微軟這部分的概念:
原始碼中看起來好像有很多的檔案,其實有大約 1/3 都是 interface 的定義。基本上來說一樣是分為三個層次,最上面的 Manager,中間的 Store,以及最下面的資料存取方式.
Manager 類的程式定義了你的程式如何和 Identity 互動.
Store 類的程式定義了 Manager 該如何取得所需要的資訊,
最底層目前提供 Entity Framework為資料存取方式,所以 user, role 等等的相關資料都寫在資料庫中.
不過,我們不看原始碼,先研究一下怎麼使用
瀏覽自動生成的程式
首先,觀察 Startup.cs程式, 先看服務的設定部分.也就是 ConfigureService
(註:我使用了延伸套件 SuperCharger, 所以程式碼的顏色有加強)
專案目錄下有個 Data 目錄,裡面存放的就是上面程式碼中 ApplicationDbContext 定義.預設是使用 Local DB
整個資料庫的部份是用 code first 的方式形成的,在第一次執行專案時,程式會需要你去執行 EF migration,將整個 Identity 所用的 table 都在資料庫中建立起來.
整個資料庫的部份是用 code first 的方式形成的,在第一次執行專案時,程式會需要你去執行 EF migration,將整個 Identity 所用的 table 都在資料庫中建立起來.
我們先看看執行的樣子比較:
如果沒執行過 EF Migration, 當您使用 Register / Login 畫面,按下按鍵會看到下面畫面:
其實一個 EF Migration動作,可以說是裡個步驟:
- 產生 Migration的相關 Script :就是我們在NuGet套件管理器主控台輸入的
Add-migration XXXXX - 再真正依照 Script修改資料庫:就是我們在NuGet套件管理器主控台輸入的
Update-databse
當我們專案產生的時候,也自動幫你產生了第一次 Migration的 Script. 所以,我們要做的只是第二步驟。
之所以這樣子,推測是要讓我們,如果不想使用預設的 Local DB, 可以先修改資料庫的Connection String, 再執行真正的 Update資料庫。這裡我們先用預設的跑起來看看吧~~
之所以這樣子,推測是要讓我們,如果不想使用預設的 Local DB, 可以先修改資料庫的Connection String, 再執行真正的 Update資料庫。這裡我們先用預設的跑起來看看吧~~
專案的註冊畫面,
使用 Email登入喔...
使用 Email登入喔...
所輸入的資料若是不符合要求,會有自動的提示.
如圖:
如圖:
註冊完畢會回到首頁(Home),
但功能表會顯示登入的帳號:
但功能表會顯示登入的帳號:
專案的登入畫面:
登入畫面的下方,有兩個連結,一是連結到註冊畫面;另一個則是忘記密碼的處理畫面,不過專案並沒有幫我們處理,它只放了一個說明文件的連結(看來是我們自己要設計的):
另外,在登入畫面的最下方,也說明了這個專案目前還沒有使用外部驗證機制,它只提供了一個說明文件的連結,那是教你如何使用 FaceBook 或 Google 帳號來登入!
登入以後,
其實也有提供,修改密碼的畫面,
就是按功能表的那個 Hello, xxx@yyyy.zzz.ccc
就是按功能表的那個 Hello, xxx@yyyy.zzz.ccc
修改密碼的畫面:
因為,還沒有使用外部認證,所以是個空白畫面:
參考資料:
沒有留言:
張貼留言