Как вы можете проверить, будет ли пароль AD соответствовать установленным требованиям сложности?

В приложении net 3.5 csharp мне нужно знать заранее, если пароль AD будет соответствовать установленным требованиям сложности.
Как вы можете это сделать?

Ответ 1

Эти ссылки могут указывать на правильный трек:

Изменить пароль пользователя в ADS и проверить политику паролей домена (С#)?

Управление пользователями с помощью Active Directory - Управление паролями для пользователей ADAM

Определение политики учетной записи домена (у этого, похоже, есть то, что вам нужно)

Ответ 2

Если вы хотите получить требования от AD, тогда ссылки в ответе @Leniel Macaferi должны помочь.

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

  • Минимальная длина: легко проверить длину строки
  • Сложность: общие требования будут "по крайней мере три из этого списка: строчные, прописные, цифры, символы", поэтому вы хотите создать счетчик, затем используйте регулярное выражение для проверки, если каждое условие соответствует и увеличивает счетчик для каждого из них. Так, например, ваши регулярные выражения будут выглядеть как [a-z], [a-z], [0-9], [[email protected]#$%^&*()-_\+=<,>\.\?\/]; для каждого, который соответствует, добавьте 1 к своему счетчику. Если счетчик на конце меньше ваших требований, пароль терпит неудачу. (Вы даже можете быть очень приятными для пользователя и предлагать одну из категорий, которые они пропустили, если вы сохранили логические переменные для категорий, которые они использовали и не использовали.)
  • Легкие догадки. Вы можете создать свой собственный тест равенства, чтобы убедиться, что пользователь не выбирает пароль, соответствующий их имени пользователя или другим запрещенным паролям.
  • Недавно использованные пароли: Um, это не так просто... вы не можете понять это без помощи Active Directory.