繁体   English   中英

每个租户.Net Core身份的锁定功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM