dotnet new mvc -o IdentityMvc
cd IdentityMvc
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
Startup.cs->ConfigureServices
using IdentityMvc.Data;
using Microsoft.EntityFrameworkCore;
using IdentityMvc.Models;
using Microsoft.AspNetCore.Identity;
1 ?services.AddDbContext<ApplicationDbContext>(options => 2 ????????????????options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 3 ?4 ????????????services.AddIdentity<ApplicationUser, IdentityRole>() 5 ????????????????.AddEntityFrameworkStores<ApplicationDbContext>() 6 ????????????????.AddDefaultTokenProviders(); 7 ?8 ????????????services.Configure<IdentityOptions>(options => 9 ????????????{10 ????????????????// Password settings11 ????????????????options.Password.RequireDigit = true;12 ????????????????options.Password.RequiredLength = 8;13 ????????????????options.Password.RequireNonAlphanumeric = false;14 ????????????????options.Password.RequireUppercase = true;15 ????????????????options.Password.RequireLowercase = false;16 ????????????????options.Password.RequiredUniqueChars = 6;17 18 ????????????????// Lockout settings19 ????????????????options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(30);20 ????????????????options.Lockout.MaxFailedAccessAttempts = 10;21 ????????????????options.Lockout.AllowedForNewUsers = true;22 23 ????????????????// User settings24 ????????????????options.User.RequireUniqueEmail = true;25 ????????????});26 27 ????????????services.ConfigureApplicationCookie(options =>28 ????????????{29 ????????????????// Cookie settings30 ????????????????options.Cookie.HttpOnly = true;31 ????????????????options.Cookie.Expiration = TimeSpan.FromDays(150);32 ????????????????// If the LoginPath isn‘t set, ASP.NET Core defaults 33 ????????????????// the path to /Account/Login.34 ????????????????options.LoginPath = "/Account/Login";35 ????????????????// If the AccessDeniedPath isn‘t set, ASP.NET Core defaults 36 ????????????????// the path to /Account/AccessDenied.37 ????????????????options.AccessDeniedPath = "/Account/AccessDenied";38 ????????????????options.SlidingExpiration = true;39 ????????????});
Data->ApplicationDbContext 新建
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 6 using Microsoft.EntityFrameworkCore; 7 using IdentityMvc.Models; 8 ?9 namespace IdentityMvc.Data10 {11 ????public class ApplicationDbContext : IdentityDbContext<ApplicationUser>12 ????{13 ????????public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)14 ????????????: base(options)15 ????????{16 ????????}17 18 ????????protected override void OnModelCreating(ModelBuilder builder)19 ????????{20 ????????????base.OnModelCreating(builder);21 ????????????// Customize the ASP.NET Identity model and override the defaults if needed.22 ????????????// For example, you can rename the ASP.NET Identity table names and more.23 ????????????// Add your customizations after calling base.OnModelCreating(builder);24 ????????}25 ????}26 }
Models->ApplicationUser 新建
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Identity; 6 ?7 namespace IdentityMvc.Models 8 { 9 ????// Add profile data for application users by adding properties to the ApplicationUser class10 ????public class ApplicationUser : IdentityUser11 ????{12 ????}13 }
appsettings.json 加入数据库连接
?"ConnectionStrings": { ???"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-ids-3D54E4B2-38C1-466C-A12F-E9CCF493B11B;Trusted_Connection=True;MultipleActiveResultSets=true" ?},
最后生成编译,
生成数据库映射表
更新数据库
dotnet builddotnet ef migrations add Initial -o Data/Migrationsdotnet ef database update
mvc core2.1 IdentityServer.EntityFramework Core 配置
原文地址:https://www.cnblogs.com/LiuFengH/p/9411335.html