Identity – Options
前言
上一篇已经有写到一些配置了, 但不完整, 这里专门写一篇吧.
防暴力登入
services.Configure<IdentityOptions>(options => { // Default Lockout settings. options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5); options.Lockout.MaxFailedAccessAttempts = 5; options.Lockout.AllowedForNewUsers = true; });
services.Configure<PasswordHasherOptions>(option =>
{
// Default Iteration settings.
option.IterationCount = 12000; // 密码 hash 的次数
});
Password 的格式要求
services.Configure<IdentityOptions>(options => { // Default Password settings. options.Password.RequireDigit = true; options.Password.RequireLowercase = true; options.Password.RequireNonAlphanumeric = true; options.Password.RequireUppercase = true; options.Password.RequiredLength = 6; options.Password.RequiredUniqueChars = 1; });
登入条件
services.Configure<IdentityOptions>(options => { // Default SignIn settings. options.SignIn.RequireConfirmedEmail = false; options.SignIn.RequireConfirmedPhoneNumber = false; options.SignIn.RequireConfirmedAccount = false; });
User 创建条件
services.Configure<IdentityOptions>(options => { // Default User settings. options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+"; options.User.RequireUniqueEmail = false; });
AllowedUserNameCharacters = ""; 表示所有 character 都 allow.
Cookie
services.ConfigureApplicationCookie(options => { options.AccessDeniedPath = "/Identity/Account/AccessDenied"; options.Cookie.Name = "YourAppCookieName"; options.Cookie.HttpOnly = true; options.ExpireTimeSpan = TimeSpan.FromMinutes(60); options.LoginPath = "/Identity/Account/Login"; // ReturnUrlParameter requires //using Microsoft.AspNetCore.Authentication.Cookies; options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter; options.SlidingExpiration = true; });
这里需要注意一下, 调用必须在 AddIdentity 之后哦
Data Protection Token
services.Configure<DataProtectionTokenProviderOptions>(options => { options.TokenLifespan = TimeSpan.FromHours(48); });
默认是 1 day.
Other
ClaimsIdentityOptions, TokenOptions 和 StoreOptions, 这些比较冷门就不提了