为符合复杂性策略的AD用户帐户生成密码

时间:2015-07-18 03:34:34

标签: c# .net active-directory directoryservices

我需要自动创建AD个用户。问题是,确保生成的密码符合AD的密码策略。我不知道政策会是什么,有没有办法在运行时确定?这就是我正在使用的内容,但您可以看到length=164 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();

1 个答案:

答案 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();