Как вы можете проверить, будет ли пароль 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.