2017年6月14日 星期三

ASP.Net Core MVC (VS2017) 入門點 - (2-1)

再回來看看 Visual Studio幫你產生的使用者驗證管理, 就是我們新增專案時, 有個『變更驗證』選項,其下有四種選項,它會自動產生很多Code, 這裡研究清楚以便日後使用.

開始

首先,新增專案時,這是屬於 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 都在資料庫中建立起來.
 
我們先看看執行的樣子比較:
 

如果沒執行過 EF Migration, 當您使用 Register / Login 畫面,按下按鍵會看到下面畫面:
 
 
 其實一個 EF Migration動作,可以說是裡個步驟:
  1. 產生 Migration的相關 Script :就是我們在NuGet套件管理器主控台輸入的
      Add-migration XXXXX
  2. 再真正依照 Script修改資料庫:就是我們在NuGet套件管理器主控台輸入的
     
    Update-databse
當我們專案產生的時候,也自動幫你產生了第一次 Migration的 Script. 所以,我們要做的只是第二步驟。

之所以這樣子,推測是要讓我們,如果不想使用預設的 Local DB, 可以先修改資料庫的Connection String, 再執行真正的 Update資料庫。這裡我們先用預設的跑起來看看吧~~
 
專案的註冊畫面,
使用 Email登入喔...
 
 
所輸入的資料若是不符合要求,會有自動的提示.
如圖:
 
 
註冊完畢會回到首頁(Home),
但功能表會顯示登入的帳號:
 
 
專案的登入畫面:


登入畫面的下方,有兩個連結,一是連結到註冊畫面;另一個則是忘記密碼的處理畫面,不過專案並沒有幫我們處理,它只放了一個說明文件的連結(看來是我們自己要設計的):
 
 
另外,在登入畫面的最下方,也說明了這個專案目前還沒有使用外部驗證機制,它只提供了一個說明文件的連結,那是教你如何使用  FaceBook 或 Google 帳號來登入
 
登入以後,
其實也有提供,修改密碼的畫面,
就是按功能表的那個 Hello, xxx@yyyy.zzz.ccc
 
 
修改密碼的畫面:

 
因為,還沒有使用外部認證,所以是個空白畫面:
 
 
 


參考資料:



沒有留言:

張貼留言

ASP.Net Core MVC (VS2017) 入門點 - (2-1)

再回來看看 Visual Studio幫你產生的使用者驗證管理, 就是我們 新增專案 時, 有個『 變更驗證 』選項,其下有四種選項,它會自動產生很多Code, 這裡研究清楚以便日後使用.