ASP.Net Core有SignInManager来处理用户身份验证。其中一种方法是PasswordSignInAsync(string username, string password, bool isPersistent, bool lockoutOnFailure)
。将lockoutOnFailure设置为true应该在一定次数的登录尝试失败后暂时锁定用户。
查看数据库中的AspNetUsers表,我看到以下内容:
看起来预期的功能是允许5次登录尝试,然后将帐户锁定5分钟。
所以我的问题是:
答案 0 :(得分:10)
- 如何设置允许的失败登录次数?
- 如何设置锁定期?
醇>
默认项目模板使用扩展方法配置身份服务Startup
(在ConfigureServices
类IdentityOptions
方法中)。此方法存在重载,您可以配置services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
。
而不是
var lockoutOptions = new LockoutOptions()
{
AllowedForNewUsers = true,
DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5),
MaxFailedAccessAttempts = 5
};
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Lockout = lockoutOptions;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
您可以使用
LockoutOptions
上述内容无效,因为这些是function bar(foo, foo){}
的默认值,但您可以根据需要更改它们。