我需要自动创建AD
个用户。问题是,确保生成的密码符合AD
的密码策略。我不知道政策会是什么,有没有办法在运行时确定?这就是我正在使用的内容,但您可以看到length=16
和4 non-alphanumeric chars
的复杂性是静态的,并且可能并不总是有效。我正在寻找一种从AD
获取密码策略的方法,以便生成的密码正确无误。
UserPrincipal up = new UserPrincipal(oPrincipalContext);
up.SamAccountName = userId;
up.SetPassword(System.Web.Security.Membership.GeneratePassword(16, 4));
up.Enabled = false;
up.ExpirePasswordNow();
up.Save();
答案 0 :(得分:0)
这就是我正在使用的。我使用DirectoryEntry/LDAP
获取密码属性,然后使用这些属性创建密码。
DirectoryEntry child = new DirectoryEntry("LDAP://machine/DC=domain,DC=com");
int minPwdLength = (int)child.Properties["minPwdLength"].Value;
int pwdProperties = (int)child.Properties["pwdProperties"].Value;
创建密码时使用属性。
UserPrincipal up = new UserPrincipal(oPrincipalContext);
up.SamAccountName = userId;
up.SetPassword(System.Web.Security.Membership.GeneratePassword(minPwdLength,
pwdProperties));
up.Enabled = true;
up.ExpirePasswordNow();
up.Save();