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 }
View Code

相关文章: