Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : changements sur active directory [ Mono / Général ] (dorine82)

lundi 17 septembre 2007 à 10:19:44 | changements sur active directory

dorine82

Salut à tous,

j'ai écrit un programme qui lit un fichier texte et le met dans un tableau et ensuite travaille avec ce tableau

Ce fichier était avant sur cette forme ci :

100 ;SG

101 ;SA

.

.

.

.

et maintenant j'ai un tableau de la sorte

 

Tel

User

100

SG

101

SA

...

...

 

le but de mon programme est d'assigner à chaque utilisateur de active directory leur numéros de telephone.

 

Donc mon programme lit en fait chaque ligne sur la colonne « User » de mon tableau , fait une recherche sur active directory, et quand il a trouvé le user il lui assigne le numéro de telephone qui sur le tableau.

 

Un exemple : il lit la 1ere colonne de User qui est SG , il fait une recherche sur active directory et quand il a trouvé SG il lui assigne donc le numéro 110 du tableau ; et il en est ainsi pour tous les utilisateurs qui sont dans le tableau.

 

Mon programme en principe devrait marcher , mais il a d' abord mis a tous mes user dans active directory la valeur 502 qui est la derniere valeur de mon tableau et ensuite , il n'a plus fait de changements.

 

Je ne sais pas s' il y' a quelque chose qui est faux avec mon programme.

 

 

S' il vous plait aidez moi à retrouver ce qui ne va pas.

 

 

Merci d' avance.

 

Voilà mon code :



using System;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.DirectoryServices;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.IO.Compression;
using System.Reflection;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Text;

namespace fichier
{
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.DataGrid dataGrid1;
        private Button btnWriteToLDAP;
        private DataTable m_dt;
        //private System.Windows.Forms.TextBox textBox1;

        //<summary>
        // required designer variable.

        private System.ComponentModel.Container components = null;
        public Form1()
        {
            // required for windows Form Designer support

            InitializeComponent();

            // TODO Add any constructor code after InitializeComponent call
        }

        // clean up any resources being used

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code

        // required method for designer support - do not modify
        // the contents of this method with the code editor.

        private void InitializeComponent()
        {
            this.dataGrid1 = new System.Windows.Forms.DataGrid();
            this.btnWriteToLDAP = new System.Windows.Forms.Button();
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
            this.SuspendLayout();
            //
            // dataGrid1
            //
            this.dataGrid1.DataMember = "";
            this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
            this.dataGrid1.Location = new System.Drawing.Point(8, 40);
            this.dataGrid1.Name = "dataGrid1";
            this.dataGrid1.Size = new System.Drawing.Size(400, 400);
            this.dataGrid1.TabIndex = 0;
            //
            // btnWriteToLDAP
            //
            this.btnWriteToLDAP.Location = new System.Drawing.Point(415, 40);
            this.btnWriteToLDAP.Name = "btnWriteToLDAP";
            this.btnWriteToLDAP.Size = new System.Drawing.Size(75, 23);
            this.btnWriteToLDAP.TabIndex = 1;
            this.btnWriteToLDAP.Text = "WriteToLDAP";
            this.btnWriteToLDAP.UseVisualStyleBackColor = true;
            this.btnWriteToLDAP.Click += new System.EventHandler(this.btnWriteToLDAP_Click);
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(680, 425);
            this.Controls.Add(this.btnWriteToLDAP);
            this.Controls.Add(this.dataGrid1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
            this.ResumeLayout(false);

        }


        #endregion
        // the main entry point for the application
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }
        private void Form1_Load(object sender, System.EventArgs e)
        {

          
            m_dt = new DataTable("test");
     
            m_dt.Columns.Add("TelephoneNumber", System.Type.GetType("System.Int32"));
            m_dt.Columns.Add("User", System.Type.GetType("System.String"));
            StreamReader fichier = File.OpenText(@"h:\\export.txt");
            while (fichier.Peek() >= 0)
            {
             
                string ligne = fichier.ReadLine();
                string[] vals = ligne.Split(';');
                DataRow dr = m_dt.NewRow();
                try
                {
                    dr["TelephoneNumber"] = int.Parse(vals[0]);
                    dr["User"] = vals[1];
                    m_dt.Rows.Add(dr);
                }

                catch (Exception ex)
                {
                    Console.WriteLine(ex.GetType().ToString());
                    Console.ReadLine();
                }

            }

         
            dataGrid1.DataSource = m_dt;
        }


        private void btnWriteToLDAP_Click(object sender, EventArgs e)
        {
            try
            {
    
                DirectoryEntry deUser = new DirectoryEntry("LDAP://ou=User, ou=User Office, ou=User, DC=hte,DC=intra", "don", "mamanetpapa");

   
                DirectorySearcher searchEmploye = new DirectorySearcher(deUser);

        

                searchEmploye.Filter = "(objectClass= user)";

        
                //FindAll ist eine Methode , die uns erlaubt , alle Ergebnisse zu geben , die die suche entspricht


                foreach (SearchResult unResultat in searchEmploye.FindAll())
                {

             
                    DirectoryEntry unEmploye = unResultat.GetDirectoryEntry();

            
                    foreach (DataRow row in m_dt.Rows)
                    {
                      
                            if (unEmploye.Properties["SAMAccountName"].Value == row[1])
                            {
                                unEmploye.Properties["telephoneNumber"].Value = row[0];
                                unEmploye.CommitChanges();
                            }
                                           }
                }
           }

            catch (Exception ex)
            {
                Console.WriteLine(ex.GetType().ToString());
            }

            }
        }
    }


merci encore pour votre aide généreuse

Dorine




Cette discussion est classé dans : system, user, using, datagrid1, btnwritetoldap


Répondre à ce message

Sujets en rapport avec ce message

message d'erreur [ par dorine82 ] salut à tous,j' ai ecrit un code qui devrait pouvoir lire mon fichier et le mettre dans un tableau mais je recois un message d' erreur.mon fichier est urgent problème [ par dorine82 ] salut à tous,me revoila de nouveau avec un nouveau problème(faute à mon chef).je prie que vous puissiez m' aidez.merci d' avance.en fait voila mon pro IAsyncResult [ par guitoulefoux ] Bonjour, J'ai un grand besoin de vos connaissances. En effet, je suis débutant dans la technologie « .net » et je dois effectuer une développement IAsyncResult [ par guitoulefoux ] Bonjour, J?ai un grand besoin de vos connaissances. En effet, je suis débutant dans la technologie « .net » et je dois effectuer une développement C# : techniques de programmation. [ par Evil_Gouki_X ] Bonjour a tous.voila j'ai debute C# il y a quleques heures et j'ai une question sur les techniques de programmation. j'ai fait une recherche mais je n Récupération de la taille de plusieurs fichier [ par sliverman ] Bonjour à tous, alors voila, j'ai un listBox avec comme headerNom et Taille et je voudrais justement récupéré la taille des fichier que je Création de Task executé avant la compliation. [ par sosekeyser ] Bonjour, Je souhaite executer des tâches persos avant où après la compilation d'un projet. Exemple d'application : J'auto-incrémente la version du pro event handler javascript pour un composant c# [ par Dennon ] Bonjour, j'ai réalisé un simple composant c# (interoprable com) qui fait une additionce composant a une methode publique qui realise l'addition et l'a Problème avec WMI [ par el_filosof ] Bonjour,Je travaille avec le framework 2.0, et je developpe une application qui récupère des infos sur les process grace a WMI. J'ai deux problèmes:   import de donnée de table en c# [ par tazagaga ] Bonjour, j'aimerai recupéré les donné d'une ligne d'une table en c# j'illustre ma demande: majpz2 //la table IDlibelle IDgeo periode valeur sign


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.