1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
public static void AddToActiveDirectory(string UserName, string login, string password, string Nom, string Prenom , string Societe, string mail )
{
try
{
//string sUserPath = "LDAP://OU=Membres,OU=TestOu,DC=MachineDomain,DC=Fr";
string sUserPath = ConfigurationSettings.AppSettings["ADUserPath"];
// on passe les params de login /password d'un compte NT à pouvoir sur AD
DirectoryEntry entry = new DirectoryEntry(sUserPath,
ConfigurationSettings.AppSettings["ADAdminLogin"],
ConfigurationSettings.AppSettings["ADAdminPassword"]);e
// On cré le user avec ses propriétés
//--------------------------------------------
DirectoryEntry user = entry.Children.Add("cn=" + UserName, "user");
user.Properties["sAMAccountName"].Add(login); //compte NT
user.Properties["sn"].Add(Nom);
user.Properties["givenName"].Add(Prenom);
user.Properties["description"].Add("Membre ajouté le " + DateTime.Now.ToLongDateString());
//propriétés supplémentaires
//--------------------------------------------
user.Properties["displayName"].Add(Nom + " " + Prenom + "[" + Societe + "]");
user.Properties["userPrincipalName"].Add(string.Format("{0}@{1}", login, ConfigurationSettings.AppSettings["ADDomain"])); // Mail de login
user.Properties["Mail"].Add(mail);
user.Properties["Company"].Add(Societe);
user.CommitChanges();
// On doit d'abord sauver l'utilisateur pour ensuite lui affecter un password
user.Invoke("SetPassword", new object[] {password} );
// on crée un compte de base et on l'active ADS_UF_NORMAL_ACCOUNT
user.Properties["userAccountControl"].Value = 0x200;
user.CommitChanges();
//On fait une référence au groupe NT
//string LDAPDomain = "LDAP://CN=GroupeTest,OU=Membres,OU=TestOu,DC=MachineDomain,DC=Fr";
string LDAPDomain = System.Configuration.ConfigurationSettings.AppSettings["ADGroupePath"];
DirectoryEntry Group= new DirectoryEntry(LDAPDomain,
ConfigurationSettings.AppSettings["ADAdminLogin"],
ConfigurationSettings.AppSettings["ADAdminPassword"]);
//on ajoute l'utilisateur au groupe
Group.Invoke("Add",new Object[]{user.Path.ToString()});
Group.CommitChanges();
Group.Close();
user.Close();
}
catch( Exception exception )
{
Console.WriteLine( exception.Message );
} |
Partager