如何在.NET Core Identity中使用多个密码策略?

时间:2019-04-05 13:56:01

标签: .net-core asp.net-core-identity

我们将用户分为几组。每个组都有不同的密码策略。我要实现的是在特定用户更改密码之前,动态加载与该用户相关的密码策略,然后使用该策略验证新密码。

我知道我可以在启动类中为每个应用程序全局设置默认密码策略:

services.Configure<IdentityOptions>(options =>
{
    options.Password.RequireDigit = false;
    options.Password.RequiredLength = 5;
    options.Password.RequireLowercase = true;
    options.Password.RequireNonLetterOrDigit = true;
    options.Password.RequireUppercase = false;
});

它很好用,但是我们希望在运行时加载基于用户的策略。

我现在想到的唯一解决方案是创建自己的IPasswordValidator实现,在这里我可以简单地加载密码策略并自己完成所有操作(这意味着检查新密码中是否存在小写字母)此用户附加的政策所要求的等)。但是在我开始实施此功能之前,我想知道是否有更漂亮的解决方案。

理想情况下,我想使用动态生成的PasswordOptions对象来验证用户的密码。

0 个答案:

没有答案