Advertisement
daredev6733

C# LDAP class

Jul 25th, 2012
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.09 KB | None | 0 0
  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://xxx/ou=active,ou=employees,ou=people,o=xxx");
  33.             searchRoot.AuthenticationType = AuthenticationTypes.Secure;
  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.             _login = login;
  39.             try
  40.             {
  41.                 var de = sr.GetDirectoryEntry();
  42.                 if (de.Properties["cn"] != null)
  43.                     name = de.Properties["cn"].Value.ToString();
  44.                 if (de.Properties["mail"] != null)
  45.                     mail = de.Properties["mail"].Value.ToString();
  46.                 if (de.Properties["title"] != null)
  47.                     title = Strings.ToEachCaps(de.Properties["title"].Value.ToString().Replace('.', ' '));
  48.                 if (de.Properties["employeeNumber"] != null)
  49.                     id = de.Properties["employeeNumber"].Value.ToString();
  50.                 if (de.Properties["givenName"] != null)
  51.                     firstname = de.Properties["givenName"].Value.ToString();
  52.                 if (de.Properties["sn"] != null)
  53.                     lastname = de.Properties["sn"].Value.ToString();
  54.                 if (de.Properties["employeeType"] != null)
  55.                     employeetype = de.Properties["employeeType"].Value.ToString();
  56.                 if (de.Properties["description"] != null)
  57.                     description = de.Properties["description"].Value.ToString();
  58.                 if (de.Properties["manageruid"] != null)
  59.                     manageruid = de.Properties["manageruid"].Value.ToString();
  60.                 if (de.Properties["employeeNumber"] != null)
  61.                     employeenumber = de.Properties["employeeNumber"].Value.ToString();
  62.                 if (de.Properties["telephoneNumber"] != null)
  63.                     telephonenumber = de.Properties["telephoneNumber"].Value.ToString();
  64.             }
  65.             catch (Exception ex)
  66.             {
  67.                 throw ex;
  68.             }
  69.         }
  70.  
  71.         public LDAP(string login, List<string> fields)
  72.         {
  73.             var searchRoot = new DirectoryEntry("LDAP://xxx/ou=active,ou=employees,ou=people,o=xxx", null, null, AuthenticationTypes.Secure);
  74.             var ds = new DirectorySearcher(searchRoot, "(name=" + login + ")", new string[] { "title", "name", "mail", "cn", "employeeNumber", "givenName", "sn", "employeeType", "description", "manageruid", "employeeNumber", "telephoneNumber" });
  75.  
  76.             var sr = ds.FindOne();
  77.             if (sr == null) return;
  78.             var de = sr.GetDirectoryEntry();
  79.  
  80.             _login = login;
  81.  
  82.             if (fields.Contains("FirstName"))
  83.             {
  84.                 firstname = de.Properties["givenName"].Value.ToString();
  85.             }
  86.  
  87.             if (fields.Contains("LastName"))
  88.             {
  89.                 lastname = de.Properties["sn"].Value.ToString();
  90.             }
  91.  
  92.             if (fields.Contains("Name"))
  93.             {
  94.                 name = de.Properties["cn"].Value.ToString();
  95.             }
  96.  
  97.             if (fields.Contains("Mail"))
  98.             {
  99.                 mail = de.Properties["mail"].Value.ToString();
  100.             }
  101.            
  102.             if (fields.Contains("Title"))
  103.             {
  104.                 title = Strings.ToEachCaps(de.Properties["title"].Value.ToString().Replace('.', ' '));
  105.             }
  106.  
  107.             if (fields.Contains("ID"))
  108.             {
  109.                 id = de.Properties["employeeNumber"].Value.ToString();                
  110.             }
  111.  
  112.             if (fields.Contains("EmployeeType"))
  113.             {
  114.                 employeetype = de.Properties["employeeType"].Value.ToString();
  115.             }
  116.  
  117.             if (fields.Contains("Description"))
  118.             {
  119.                 description = de.Properties["description"].Value.ToString();
  120.             }
  121.  
  122.             if (fields.Contains("ManagerUID"))
  123.             {
  124.                 manageruid = de.Properties["manageruid"].Value.ToString();
  125.             }
  126.  
  127.             if (fields.Contains("EmployeeNumber"))
  128.             {
  129.                 employeenumber = de.Properties["employeeNumber"].Value.ToString();
  130.             }
  131.  
  132.             if (fields.Contains("TelephoneNumber"))
  133.             {
  134.                 telephonenumber = de.Properties["telephoneNumber"].Value.ToString();
  135.             }
  136.         }
  137.  
  138.         public static List<LDAP> GetUsers(List<string> logins)
  139.         {
  140.             return logins.Select(login => new LDAP(login)).ToList();
  141.         }
  142.  
  143.         public static List<LDAP> GetFullNameTitle(List<string> logins)
  144.         {
  145.             var a = new List<string>();
  146.             a.Add("FirstName");
  147.             a.Add("LastName");
  148.             a.Add("Title");
  149.             return logins.Select(login => new LDAP(login, a)).ToList();
  150.         }
  151.  
  152.         public string GetFullData(char delimiter)
  153.         {
  154.             var result = string.Empty;
  155.                 result = "First Name:\t" + firstname + delimiter + "\r\n";
  156.                 result += "Last Name:\t" + lastname + delimiter + "\r\n";
  157.                 result += "Login:\t\t" + _login + delimiter + "\r\n";
  158.                 result += "e-mail:\t\t" + mail + delimiter + "\r\n";
  159.                 result += "Title:\t\t" + title + delimiter + "\r\n";
  160.                 result += "Manager UID:\t" + manageruid + delimiter + "\r\n";
  161.                 result += "Name:\t\t" + name + delimiter + "\r\n";
  162.                 result += "ID:\t\t" + id + delimiter + "\r\n";
  163.                 result += "Employee Type:\t" + employeetype + delimiter + "\r\n";
  164.                 result += "Phone Number:\t" + telephonenumber + delimiter + "\r\n";
  165.                 result += "Description:\t" + description + delimiter + "\r\n";
  166.             return result;
  167.         }
  168.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement