Contents

.Net Core Identity 擴展 User 資料欄位

IdentityUser Class (Microsoft.AspNetCore.Identity.EntityFrameworkCore) | Microsoft Docs裡面我們可以看到有基本欄位,但沒有其他資料,如: 性別、城市和國家等資訊。所以我們需要擴展 User 資料欄位方法。

操作流程

1. 新增 class 繼承 IdentityUser

1
2
3
4
    public class ApplicationUser : IdentityUser
    {
        public string City { get; set; }
    }

2. AppDbContext 修改參數

1
2
3
4
5
6
7
8
    // IdentityDbContext 預設為IdentityUser ,擴展 User 類別帶入IdentityDbContext
    public class AppDbContext : IdentityDbContext<ApplicationUser>
    {
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {

        }
    }

3. Migration DB

1
2
Add-Migration Extend_IdentityUser
Update-Database

4. View 擺上新增欄位

View

1
2
3
4
5
    <div>
        <label asp-for="City"></label>
        <input asp-for="City" />
        <span asp-validation-for="City"></span>
    </div>

Controller

1
2
3
4
5
6
                var user = new ApplicationUser
                {
                    UserName = model.Email,
                    Email = model.Email,
                    City = model.City,
                };

詳細可以看GIT。

GIT: 擴展 IdentityUser 欄位 · malagege/NetCoreAuthSample@b36f5e0