C# -> ACTIVE DIRECTORY

Signaler
Messages postés
21
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
10 février 2006
-
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
-
Bonjour,
Je suis entrain de faire un programme, en C-Sharp, qui me permet d'ajouter un ou plusieurs utilisateurs dans Active Directory.

J'arrive à ajouter un utilisateur et plusieurs aussi, mais le gros du problème est que je dois mettre 2 propriétés aux utilisateur, la première: "Utilisateur ne peut changer son mot de passe" deuxième: "le mot de passe n'expire jamais".

J'ai réussi à faire le code pour cocher la case "le mot de passe n'expire jamais", mais je n'arrive vraiment pas à faire le code pour cocher la case "Utilisateur ne peut changer son mot de passe"... [voir le code si dessous]

Si quelqu'un peut m'aider ca serrai vraiment coool. Merci d'avance.

Voilà mon code pour ajouter un Utilisateur:

private void B_write_AD_Click(object sender, System.EventArgs e)
{
B_write_multi_AD.Enabled=false;
if( T_domaine.Text != "" && T_branche.Text != "" && T_CN.Text != "" && T_sAMA.Text != "" && T_DispName.Text != "" && T_SN.Text != "" && T_givenName.Text != "" && T_Desc.Text != "" && T_pass.Text != "")
{
// Change le l'image du curseur
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
L_rapport.Text = "Rapport:\n";

string path = "LDAP://" + (T_branche.Text.ToString() +";" + T_domaine.Text.ToString());
System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry(path,"sce_adm","crnagora");

// Create the user and set properties
System.DirectoryServices.DirectoryEntry user = entry.Children.Add("cn="+T_CN.Text, "user");
L_rapport.Text += "Ajout du CN... OK! \n";
user.Properties["sAMAccountName"].Add(T_sAMA.Text);
L_rapport.Text += "Ajout du sAMA... OK! \n";
user.Properties["DisplayName"].Add(T_DispName.Text);
L_rapport.Text += "Ajout du DisplayName... OK! \n";
user.Properties["sn"].Add(T_SN.Text);
L_rapport.Text += "Ajout du SN... OK! \n";
user.Properties["givenName"].Add(T_givenName.Text);
L_rapport.Text += "Ajout du Given Name... OK! \n";
user.Properties["description"].Add(T_Desc.Text);
L_rapport.Text += "Ajout de la desc... OK! \n";
// -----------------------------------
user.Properties["homeDrive"].Add(T_lect.Text);
L_rapport.Text += "Ajout du Lecteur... OK! \n";
user.Properties["homeDirectory"].Add(T_adresse_lect.Text);
L_rapport.Text += "Ajout du Adresse lect... OK! \n";
user.Properties["mail"].Add(T_mail.Text);
L_rapport.Text += "Ajout du Mail... OK! \n";
user.Properties["scriptPath"].Add(T_script_path.Text);
L_rapport.Text += "Ajout du Script path... OK! \n";
user.Properties["userPrincipalName"].Add(T_user_princ_name.Text);
L_rapport.Text += "Ajout du User principal... OK! \n";
// --- prend le changement -----------
user.CommitChanges();

//User has to be saved prior to this step
user.Invoke("SetPassword", new object[] {T_pass.Text} );
L_rapport.Text += "Ajout du Password... OK! \n";
//user.Properties["accountExpries"].Add("ValChecked");
//L_rapport.Text += "Ajout Pass Cheked... OK! \n";

//code pour cocher la case "le mot de passe n'expire jamais"
user.Properties["userAccountControl"].Value = 0x10200;
user.CommitChanges();

L_rapport.Text += "Ajout de l'utilisateur c'est passer correctement";
this.Cursor = System.Windows.Forms.Cursors.Default; // Change l'image du curseur
}
else
{
MessageBox.Show( "L'enregistrement na pas pu être fait ! \nVérifiez si le fichier "config" est chargé. \nVérifiez si tous les champs sont remplis.", "AD - Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
}

.: SCEPO :.
(Scepanovic Srdjan)
scepo@epsic.ch

3 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
19
int val;
const int ADS_UF_DONT_EXPIRE_PASSWD =0x10000;
val = (int) User.Properties["userAccountControl"].Value;
User.Properties["userAccountControl"].Value = val |
ADS_UF_DONT_EXPIRE_PASSWD;
User.CommitChanges();

::|The S@ib|::
MVP C#.NET
::|The S@ib|::
MVP C#.NET
Messages postés
21
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
10 février 2006

Merci pour ta réponse,
mais moi j'arrive à faire "Le mot de passe n'expire jamais", se que je n'arrive pas à faire c'est "L'utilisateur ne peut changer son mot de passe".

Mais merci qu'en même :)

.: SCEPO :.
(Scepanovic Srdjan)
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
19