[英]Lockout feature for every tenant .Net Core Identity
我正在开发具有锁定功能的.NET Core多租户应用程序+ .NET Core身份 。 我想为每个租户配置锁定功能(我的意思是最大登录尝试失败 )。
现在,我对Startup.cs
类中的所有用户执行此操作:
public void ConfigureServices(IServiceCollection services)
{
...
services.Configure<IdentityOptions>(options =>
{
options.Lockout.MaxFailedAccessAttempts = 5;
});
...
}
我可以为每个租户进行可配置的设置吗? 我该怎么办?
我认为您可以使用的每个租户都没有可配置的属性。
但是,您可以将此逻辑添加到AccountController的Login方法中。
var result = await _signInService.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
如果结果不成功,则可以通过FindByEmailAsync(model.email)
获取用户,以检查其失败的尝试次数
如果其锁定计数(您可以将其添加为ApplicationUser属性,声明或您喜欢的其他方法)等于或大于为此用户设置的限制,则可以将其锁定。
这可能是检查此问题的最基本方法。
我建议您在拥有这种逻辑的UserManager上实现一个用户服务,以确保无论在何处使用此PasswordSignInAsync()都将执行此检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.