Zum Inhalt springen

C# User zu einer Gruppe hinzufügen schlägt fehl (LDAP)


Empfohlene Beiträge

Geschrieben

Hallo,

ich versuche mit folgendem Code user, die in einer RichTextBox stehen zu einer Gruppe hinzuzufügen.

 

//Copy User to This Group

        private void button2_Click(object sender, EventArgs e)

        {


            string[] lines = richTextBox1.Lines;

            foreach (string str_User in lines)

            {


                //connect to AD

                DirectoryEntry dom = new DirectoryEntry("LDAP://xyz.org");


                DirectorySearcher src = new DirectorySearcher(dom, "(objectCategory=group)");

                src.Filter = "(&(objectCategory=group)(sAMAccountName=" + textBox2.Text + "))";

                foreach (SearchResult res in src.FindAll())

                {

                    DirectoryEntry group = new DirectoryEntry(res.Path);

                    if (!group.Properties["member"].Contains(str_User))

                    {

                        group.Properties["member"].Add(str_User);

                        group.CommitChanges();

                    }

                }



            }

Allerdings kommt die Exception bei "group.CommitChanges();"

Der Server kann die Anforderung nicht ausführen. (Ausnahme von HRESULT: 0x80072035)

Verweigert der Server das bestätigen, oder wie soll ich es verstehen?

Oder ist es ein Programmierfehler?

Geschrieben

Editieren war leider nicht möglich, hier der Code wie ich die Sachen in die RichTextbox schreibe:


 ArrayList GetADGroupUsers(string groupName)

        {

            SearchResult result;

            DirectoryEntry searchRoot = new DirectoryEntry("LDAP://xyz.org");

            DirectorySearcher search = new DirectorySearcher(searchRoot);

            search.Filter = String.Format("(cn={0})", groupName);

            search.PropertiesToLoad.Add("member");

            search.PropertiesToLoad.Add("samaccountname");

            result = search.FindOne();


            string memberList = "";

            ArrayList userNames = new ArrayList();

            if (result != null)

            {

                for (int counter = 0; counter <

                result.Properties["member"].Count; counter++)

                {

                    memberList = (string)result.Properties["member"][counter];


                    int indexChar = memberList.IndexOf(",");


                    string subString = memberList.Substring(0, indexChar);


                    int indexChar2 = memberList.IndexOf("=");


                    userNames.Add(subString.Substring(indexChar2 + 1, (subString.Length) - (indexChar2 + 1)));

                }

            }

            foreach (string User in userNames)

            {

                String username;

                username = User.ToString().Replace("\\", "");

                System.DirectoryServices.DirectoryEntry entry1 =

                new System.DirectoryServices.DirectoryEntry(

                "LDAP://xyz.org ");

                System.DirectoryServices.DirectorySearcher search1 = new

                System.DirectoryServices.DirectorySearcher(entry1);

                //Search Filter = Exchange Mailbox

                search1.Filter = "(&(objectClass=user)" +

                "(sAMAccountName=" + username + "))";

                //


                foreach (System.DirectoryServices.SearchResult userresult in search1.FindAll())

                {

                    richTextBox1.Text += userresult.GetDirectoryEntry().Properties["distinguishedName"].Value.ToString() + "\n";

                }


            }


            return userNames;

        }

Geschrieben

naja bin mir nicht ganz sicher aber ist der übergebene name auch dre login name?

also DOMAIN\USER ?

In einer anderen anwendung greife ich auf folgende paranmeter zurück

res.Properties[ "samAccountName" ][ 0 ]

res ist ein System.DirectoryServices.DirectorySearcher

alternativ sind noch diese werte interresant

Searcher.PropertiesToLoad.Add( "dn" );

Searcher.PropertiesToLoad.Add( "cn" );

Searcher.PropertiesToLoad.Add( "displayName" );

Searcher.PropertiesToLoad.Add( "sn" );

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...