Как использовать несколько политик паролей в .NET Core Identity? - PullRequest
0 голосов
/ 05 апреля 2019

Наши пользователи разделены на группы.Каждая группа имеет свою политику паролей.Чего я хочу добиться, так это динамически загружать политику паролей, связанную с конкретным пользователем, прежде чем он / она захочет изменить пароль, а затем подтвердить новый пароль с помощью этой политики.

Я знаю, что могу установить глобальные настройки по умолчаниюПолитика паролей для всего приложения в классе запуска:

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.

...