Ich versuche, password mit for forget password-Funktionalität festzulegen.Zufälliges Kennwort generieren, das Active Directory-Passwortrichtlinien-Komplexitätsanforderungen programmatisch erfüllt
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;
}
Ich brauche das zufällige Passwort zu erzeugen, die die folgende Komplexität erfüllt:
- nicht den Kontonamen des Benutzers enthält oder Teile des vollständigen Namen des Benutzers, der zwei aufeinanderfolgende Zeichen nicht überschreiten
- Seien Sie mindestens sechs Zeichen Länge
- Enthalten Zeichen aus drei der folgenden vier Kategorien:
- Großbuchstaben (A bis Z)
- Deutsche Kleinbuchstaben (a bis z)
- Basis 10 Ziffern (0 bis 9)
- Nicht alphabetische Zeichen (zum Beispiel!, $, #,%)
Komplexitätsanforderungen erzwungen werden, wenn Passwörter geändert oder erstellt.
Gibt es eine integrierte Methode, die den oben genannten Anforderungen entspricht? Ich habe unten Methode verwendet, um passwort randomely zu erzeugen:
Es wirft den Fehler, wenn ich versuche, Kennwort einzustellen. Schätzen Sie, ob es gibt und Validierung oder eingebaute Methode, um die obige Anforderung zu erfüllen.
bin mit ich dich nicht auf Seiten generieren helfen können, aber ich könnte Ihnen einen regulären Ausdruck geben zu validieren. – sln
Sie könnten immer 1-3 Artikel aus jeder Kategorie zufallsgenerieren und diese dann nach dem Zufallsprinzip mischen. Führen Sie sie dann zur Bestätigung durch einen Validierungsregex. IMO, die Validierung Regex ist schwieriger. Und mit 6 bis 9 Länge wäre nicht knackbar. – sln
Diese Angabe enthält den Kontonamen des Benutzers oder Teile des vollständigen Benutzernamens, die zwei aufeinanderfolgende Zeichen überschreiten, erfordert eine separate Regex oder einen separaten Prozess. Der Rest kann mit einer einzigen Regex validiert werden. – sln