使用 Asp.Net Identity 初體驗
當創建時,如果就已經使用 ASP.NET MVC Template 預設就會使用 Asp.Net Identity
接著只要在Web.Config 的 DefaultConnection 裡面指定正確的資料庫讓他運作,
執行時就可以直接使用
(註冊畫面)
(登錄後畫面)
增加資料欄位
人生沒那麼美好,客戶的要求絕對不是只有這樣…。所以乖乖加欄位吧。
在 RegisterViewModel (AccountViewModels.cs)
在 Account > Register.cshtml 增加欄位顯示
在 AccountController 找到 Register 增加 Name 的處理
執行時會發生錯誤,因為資料庫還沒更新
打開 package Manager Console
執行
Enable-Migrations
Add-Migration Init
Update-Database
然後,執行,再試著新增一個帳號
資料也如預期的加入 Name 這個欄位
增加角色
找到 Migrations 裡面的 Seed (或者直接在資料庫增加也可以)
再運行一次 Update-Database ,資料庫便會出現資料。
原本的資料可以進資料庫手動更新 UserId 對應的就是AspNetUsers的 Id、RoleId 對應的就是 AspNetUserRoles 的 Id
簡單的建立兩個頁面測試權限(須注意,大小寫有別)
成功會顯示網頁
沒有權限目前會導到登錄頁面
最後,在註冊的地方,增加角色
增加 Email 二階段驗證
由於 AspNet Identity 已經把程式碼寫好了,只要到 IdentityConfig 找到 EmailService
並把原本 Register 裡面註解的程式碼解除註解
執行註冊後會發一封信給使用者,當使用者有點連結時,會將 EmailConfirm 設為 true
但由於驗證實際上只是改值,畫面及功能上尚未處理未經驗證的使用者,及驗證碼重寄的流程