首页 > 解决方案 > 如何在 .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 对象来验证用户的密码。

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

解决方案


推荐阅读