Asp.Net Identity 練習 – 增加欄位與角色

      在〈Asp.Net Identity 練習 – 增加欄位與角色〉中留言功能已關閉

使用 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

但由於驗證實際上只是改值,畫面及功能上尚未處理未經驗證的使用者,及驗證碼重寄的流程

 

 

print