Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

C# LDAP class

By: a guest on May 14th, 2012  |  syntax: C#  |  size: 6.98 KB  |  views: 171  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public class LDAP
  2.     {
  3.         private string _login;
  4.         private string title;
  5.         private string name;
  6.         private string mail;
  7.         private string id;
  8.         private string firstname;
  9.         private string lastname;
  10.         private string employeetype;
  11.         private string description;
  12.         private string manageruid;
  13.         private string employeenumber;
  14.         private string telephonenumber;
  15.  
  16.  
  17.         public string Login { get { return _login; } }
  18.         public string Title { get { return title; } }
  19.         public string Name { get { return name; } }
  20.         public string Mail { get { return mail; } }
  21.         public string ID { get { return id; } }
  22.         public string FirstName { get { return firstname; } }
  23.         public string LastName { get { return lastname; } }
  24.         public string EmployeeType { get { return employeetype; } }
  25.         public string Description { get { return description; } }
  26.         public string ManagerUID { get { return manageruid; } }
  27.         public string EmployeeNumber { get { return employeenumber; } }
  28.         public string TelephoneNumber { get { return telephonenumber; } }
  29.  
  30.         public LDAP(string login)
  31.         {
  32.             var searchRoot = new DirectoryEntry("LDAP://myldapaddress.com/ou=active,ou=employees,ou=people,o=domain.com", null, null, AuthenticationTypes.Secure);
  33.             //string full_name = ADEntry.Properties["FullName"].Value.ToString();
  34.             var ds = new DirectorySearcher(searchRoot, "(name=" + login + ")", new string[] { "title", "name", "mail", "cn", "employeeNumber", "givenName", "sn", "employeeType", "description", "manageruid", "employeeNumber", "telephoneNumber" });
  35.  
  36.             var sr = ds.FindOne();
  37.             if (sr == null) return;
  38.             var de = sr.GetDirectoryEntry();
  39.  
  40.             _login = login;
  41.             name = de.Properties["cn"].Value.ToString();
  42.             mail = de.Properties["mail"].Value.ToString();
  43.             //var titel = de.Properties["title"].Value.ToString().Replace('.',' ');
  44.             //var splits = titel.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries);
  45.             //foreach (var a in splits.Select(split => split.ToLower()))
  46.             //{
  47.             //    for (var i = 0; i < a.Length; i++)
  48.             //    {
  49.             //        if (i == 0)
  50.             //        {
  51.             //            title += a[i].ToString(CultureInfo.InvariantCulture).ToUpper();
  52.             //        }
  53.             //        else title += a[i];
  54.             //    }
  55.             //    title += " ";
  56.             //}
  57.             title = Strings.ToEachCaps(de.Properties["title"].Value.ToString().Replace('.', ' '));
  58.             id = de.Properties["employeeNumber"].Value.ToString();
  59.             firstname = de.Properties["givenName"].Value.ToString();
  60.             lastname = de.Properties["sn"].Value.ToString();
  61.             employeetype = de.Properties["employeeType"].Value.ToString();
  62.             description = de.Properties["description"].Value.ToString();
  63.             manageruid = de.Properties["manageruid"].Value.ToString();
  64.             employeenumber = de.Properties["employeeNumber"].Value.ToString();
  65.             telephonenumber = de.Properties["telephoneNumber"].Value.ToString();
  66.         }
  67.  
  68.         public LDAP(string login, List<string> fields)
  69.         {
  70.             var searchRoot = new DirectoryEntry("LDAP://myldapaddress.com/ou=active,ou=employees,ou=people,o=domain.com", null, null, AuthenticationTypes.Secure);
  71.             var ds = new DirectorySearcher(searchRoot, "(name=" + login + ")", new string[] { "title", "name", "mail", "cn", "employeeNumber", "givenName", "sn", "employeeType", "description", "manageruid", "employeeNumber", "telephoneNumber" });
  72.  
  73.             var sr = ds.FindOne();
  74.             if (sr == null) return;
  75.             var de = sr.GetDirectoryEntry();
  76.  
  77.             _login = login;
  78.  
  79.             if (fields.Contains("FirstName"))
  80.             {
  81.                 firstname = de.Properties["givenName"].Value.ToString();
  82.             }
  83.  
  84.             if (fields.Contains("LastName"))
  85.             {
  86.                 lastname = de.Properties["sn"].Value.ToString();
  87.             }
  88.  
  89.             if (fields.Contains("Name"))
  90.             {
  91.                 name = de.Properties["cn"].Value.ToString();
  92.             }
  93.  
  94.             if (fields.Contains("Mail"))
  95.             {
  96.                 mail = de.Properties["mail"].Value.ToString();
  97.             }
  98.            
  99.             if (fields.Contains("Title"))
  100.             {
  101.                 title = Strings.ToEachCaps(de.Properties["title"].Value.ToString().Replace('.', ' '));
  102.             }
  103.  
  104.             if (fields.Contains("ID"))
  105.             {
  106.                 id = de.Properties["employeeNumber"].Value.ToString();                
  107.             }
  108.  
  109.             if (fields.Contains("EmployeeType"))
  110.             {
  111.                 employeetype = de.Properties["employeeType"].Value.ToString();
  112.             }
  113.  
  114.             if (fields.Contains("Description"))
  115.             {
  116.                 description = de.Properties["description"].Value.ToString();
  117.             }
  118.  
  119.             if (fields.Contains("ManagerUID"))
  120.             {
  121.                 manageruid = de.Properties["manageruid"].Value.ToString();
  122.             }
  123.  
  124.             if (fields.Contains("EmployeeNumber"))
  125.             {
  126.                 employeenumber = de.Properties["employeeNumber"].Value.ToString();
  127.             }
  128.  
  129.             if (fields.Contains("TelephoneNumber"))
  130.             {
  131.                 telephonenumber = de.Properties["telephoneNumber"].Value.ToString();
  132.             }
  133.         }
  134.  
  135.         public static List<LDAP> GetUsers(List<string> logins)
  136.         {
  137.             return logins.Select(login => new LDAP(login)).ToList();
  138.         }
  139.  
  140.         public static List<LDAP> GetFullNameTitle(List<string> logins)
  141.         {
  142.             var a = new List<string>();
  143.             a.Add("FirstName");
  144.             a.Add("LastName");
  145.             a.Add("Title");
  146.             return logins.Select(login => new LDAP(login, a)).ToList();
  147.         }
  148.  
  149.         public string GetFullData(char delimiter)
  150.         {
  151.             var result = string.Empty;
  152.                 result = "First Name:\t" + firstname + delimiter + "\r\n";
  153.                 result += "Last Name:\t" + lastname + delimiter + "\r\n";
  154.                 result += "Login:\t\t" + _login + delimiter + "\r\n";
  155.                 result += "e-mail:\t\t" + mail + delimiter + "\r\n";
  156.                 result += "Title:\t\t" + title + delimiter + "\r\n";
  157.                 result += "Manager UID:\t" + manageruid + delimiter + "\r\n";
  158.                 result += "Name:\t\t" + name + delimiter + "\r\n";
  159.                 result += "ID:\t\t" + id + delimiter + "\r\n";
  160.                 result += "Employee Type:\t" + employeetype + delimiter + "\r\n";
  161.                 result += "Phone Number:\t" + telephonenumber + delimiter + "\r\n";
  162.                 result += "Description:\t" + description + delimiter + "\r\n";
  163.             return result;
  164.         }
  165.     }