Facebook、Google、Microsoft 帐户和 Twitter等外部登录提供程序。
调用 AddDefaultIdentity 类似于调用以下内容:
配置Identity服务
典型模式是调用所有 Add{Service} 方法,然后调用所有 services.Configure{Service} 方法。
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.Configure<CookiePolicyOptions>(options => 4 { 5 options.CheckConsentNeeded = context => true; 6 options.MinimumSameSitePolicy = SameSiteMode.None; 7 }); 8 9 services.AddDbContext<ApplicationDbContext>(options => 10 options.UseSqlServer( 11 Configuration.GetConnectionString("DefaultConnection"))); 12 services.AddDefaultIdentity<IdentityUser>() 13 .AddDefaultUI(UIFramework.Bootstrap4) 14 .AddEntityFrameworkStores<ApplicationDbContext>(); 15 16 services.Configure<IdentityOptions>(options => 17 { 18 // Password settings. 19 options.Password.RequireDigit = true; 20 options.Password.RequireLowercase = true; 21 options.Password.RequireNonAlphanumeric = true; 22 options.Password.RequireUppercase = true; 23 options.Password.RequiredLength = 6; 24 options.Password.RequiredUniqueChars = 1; 25 26 // Lockout settings. 27 options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5); 28 options.Lockout.MaxFailedAccessAttempts = 5; 29 options.Lockout.AllowedForNewUsers = true; 30 31 // User settings. 32 options.User.AllowedUserNameCharacters = 33 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+"; 34 options.User.RequireUniqueEmail = false; 35 }); 36 37 services.ConfigureApplicationCookie(options => 38 { 39 // Cookie settings 40 options.Cookie.HttpOnly = true; 41 options.ExpireTimeSpan = TimeSpan.FromMinutes(5); 42 43 options.LoginPath = "/Identity/Account/Login"; 44 options.AccessDeniedPath = "/Identity/Account/AccessDenied"; 45 options.SlidingExpiration = true; 46 }); 47 48 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); 49 }