Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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?

  • Autor

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;

        }

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" );

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.