我经历过this answer,但是ASP.NET Core 2.0中缺少很多东西。
我设置了ShouldLockout:true
await `SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);`
现在用户在五次失败尝试后被锁定,并在一段时间(约5分钟)后自动解锁。
像旧的ASP.NET版本一样,在哪里可以更改尝试次数
manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(3);
以及管理员如何能够在这段时间内手动解锁?
答案 0 :(得分:1)
要更改尝试次数,请在标识选项中进行设置:
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
// Lockout settings
options.Lockout.AllowedForNewUsers = true;
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
要解锁用户,请重置锁定结束日期。类似于:await _userManager.SetLockoutEndDateAsync(user, null);
,其中user
是要解锁的用户。