Exemplo n.º 1
0
        public void AddDn(LdapObj ldapObj)
        {
            List <DirectoryAttribute> dirAttribs = new List <DirectoryAttribute>();

            foreach (KeyValuePair <String, LdapAttribut> ldapAttribut in ldapObj.ldapAttributs)
            {
                if (ldapAttribut.Value.values.Count > 0)
                {
                    foreach (Byte[] tb in ldapAttribut.Value.values)
                    {
                        Console.WriteLine(ldapAttribut.Key + " <=> " + Encoding.UTF8.GetString(tb));
                    }
                    dirAttribs.Add(new DirectoryAttribute(ldapAttribut.Key, ldapAttribut.Value.values.ToArray()));
                }
            }

            // create an addrequest object
            AddRequest addRequest = new AddRequest(ldapObj.dn, dirAttribs.ToArray());

            Connect2();
            try
            {
                AddResponse addreponse = ldapConnexion.SendRequest(addRequest) as AddResponse;
            }
            catch (DirectoryOperationException e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }
        }
Exemplo n.º 2
0
 public void DeleteDn(string dn)
 {
     try
     {
         Connect2();
         LdapObj ldapObj = ReadDn(dn, "cn");
         if (ldapObj != null)
         {
             DeleteRequest  deleteRequest  = new DeleteRequest(dn);
             DeleteResponse deleteResponse = (DeleteResponse)ldapConnexion.SendRequest(deleteRequest);
         }
     }
     catch (DirectoryOperationException e)
     {
         Console.WriteLine(e.Message);
         //    throw e;
     }
 }
Exemplo n.º 3
0
 public void AddAttribut(String dn, String name, byte[][] value)
 {
     Connect2();
     try
     {
         LdapObj ldapObj = ReadDn(dn, new String[] { name });
         if (!ldapObj.HasAttribut(name))
         {
             ModifyRequest modRequest = new ModifyRequest(dn, DirectoryAttributeOperation.Add, name, value);
             // example of modifyrequest not using the response object...
             ModifyResponse modifyResponse = (ModifyResponse)ldapConnexion.SendRequest(modRequest);
             Console.WriteLine(String.Format("{0} of {1} added successfully.", ldapConnexion, value));
         }
         else
         {
             DirectoryAttributeModification directoryAttributeModification = new DirectoryAttributeModification();
             directoryAttributeModification.Operation = DirectoryAttributeOperation.Replace;
             directoryAttributeModification.Name      = name;
             ldapObj.ldapAttributs[name].AddRange(value);
             foreach (byte[] tbb in ldapObj.ldapAttributs[name].values)
             {
                 directoryAttributeModification.Add(tbb);
             }
             ModifyRequest  modRequest     = new ModifyRequest(dn, new DirectoryAttributeModification[] { directoryAttributeModification });
             ModifyResponse modifyResponse = (ModifyResponse)ldapConnexion.SendRequest(modRequest);
             Console.WriteLine(String.Format("{0} of {1} added successfully.", ldapConnexion, value));
         }
     }
     catch (DirectoryOperationException e)
     {
         Console.WriteLine(e.Message);
         throw e;
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
         throw e;
     }
 }
Exemplo n.º 4
0
        private List <LdapObj> SearchDn(String baseDn, String ldapFilter, System.DirectoryServices.Protocols.SearchScope scope, String[] attribs)
        {
            List <LdapObj> lstLdapObj = null;

            try
            {
                if (!bindingSuccess)
                {
                    Connect();
                }
                if (attribs != null)
                {
                    for (int i = 0; i < attribs.Length; i++)
                    {
                        attribs[i] = attribs[i].Trim();
                    }
                }
                SearchRequest request;
                if (attribs == null)
                {
                    request = new SearchRequest(baseDn, ldapFilter, scope);
                }
                else
                {
                    request = new SearchRequest(baseDn, ldapFilter, scope, attribs);
                }

                SearchResponse result = (SearchResponse)ldapConnexion.SendRequest(request);
                if ((result != null) && result.Entries.Count > 0)
                {
                    lstLdapObj = new List <LdapObj>();

                    foreach (SearchResultEntry sResult in result.Entries)
                    {
                        String  dn      = sResult.DistinguishedName;
                        LdapObj ldapObj = new LdapObj(dn);
                        if (attribs != null)
                        {
                            foreach (String attr in attribs)
                            {
                                ldapObj.AddLdapAttribut(new LdapAttribut(attr));
                            }
                        }

                        foreach (DirectoryAttribute attribute in sResult.Attributes.Values)
                        {
                            /*Console.WriteLine(attribute.Name + " ==> " + attribute.Count);
                             * if (attribute.Name.Equals("objectClass"))
                             *  Console.WriteLine(attribute.Name + " ==> " + attribute.Count);
                             */
                            LdapAttribut ldapAttribut = new LdapAttribut(attribute.Name);
                            ldapAttribut.AddRange((byte[][])attribute.GetValues(typeof(byte[])));
                            ldapObj.AddLdapAttribut(ldapAttribut);
                        }
                        lstLdapObj.Add(ldapObj);
                    }
                }
                return(lstLdapObj);
            }
            catch (LdapException ex)
            {
                Console.WriteLine(String.Format("Error LdapException FindPeDateMajCert {0}...", ex.Message));
                Console.WriteLine(ex.StackTrace);
                throw ex;
            }
            catch (DirectoryOperationException ex)
            {
                Console.WriteLine(String.Format("Error DirectoryOperationException FindPeDateMajCert {0}...", ex.Message));
                Console.WriteLine(ex.StackTrace);
                throw ex;
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("Error Exception FindPeDateMajCert {0}...", ex.Message));
                Console.WriteLine(ex.StackTrace);
                throw ex;
            }
        }