如何在ASP.NET Core 2.0中配置登录尝试并由管理员手动解锁?

时间:2018-07-30 18:04:31

标签: c# asp.net asp.net-core-mvc asp.net-core-2.0

我经历过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);

以及管理员如何能够在这段时间内手动解锁?

1 个答案:

答案 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是要解锁的用户。