Я пытаюсь установить пароль для функции забывания пароля.Генерировать случайный пароль, который соответствует требованиям сложности паролей в Active Directory Программно
public string SetPassWord(string userName, string randomPassword)
{
string result = string.Empty;
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, userName);
AdUser adUser = new AdUser();
if (user != null)
{
user.SetPassword(randomPassword);
result = "Success";
}
return result;
}
мне нужно генерировать случайный пароль, который соответствует следующей сложности:
- Не содержит имя учетной записи пользователя или части полного имени пользователя, который превышает два последовательных символов
- быть, по крайней мере, шесть символов в длину
- Содержит символы из трех следующих четырех категорий:
- английских символы в верхнем регистре (от А до Z)
- строчных буквы английского алфавита (от А до Z)
- Base 10 цифр (от 0 до 9)
- Non-буквенных символов (например,!, $, #,%)
требования Сложность исполняются, когда пароли изменены или созданы.
Есть ли встроенный метод, который обслуживает вышеуказанные требования? Я использовал метод ниже для генерации пароля случайным образом:
string randomPassword = Membership.GeneratePassword(8, 0).Replace('<','!').Replace('>', '#');
Он выдает ошибку, когда я пытаюсь установить пароль. Оцените, есть ли и валидация или встроенный метод для достижения вышеуказанного требования.
Я не могу вам помочь в генерации части, но я мог бы дать вам регулярное выражение для проверки его. – sln
Вы всегда можете произвольно генерировать 1-3 элемента из каждой категории, а затем произвольно смешивать их. Затем запустите их через регулярное выражение проверки правильности. IMO, регулярное выражение проверки является более сложным. И с длиной от 6 до 9 было бы невозможно взломать. – sln
Это «Не содержать имя учетной записи пользователя или части полного имени пользователя, которое превышает два последовательных символа», требует отдельного регулярного выражения или процесса. Остальное можно проверить с помощью одного регулярного выражения. – sln