public UTRGVUserProfile GetUser(string cn) { UTRGVUserProfile user = new UTRGVUserProfile(); DirectoryEntry rootDSE = rootDSE = new DirectoryEntry("LDAP://" + _domain, _srvAcc, _srvPassword); DirectorySearcher search = new DirectorySearcher(rootDSE); search.Asynchronous = true; search.PageSize = 1001; // To Pull up more than 100 records. search.Filter = "(&(&(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(cn=" + cn + "*))(|(memberOf=CN=utrgv-staff,OU=Groups,DC=ad,DC=utrgv,DC=edu)(memberOf=CN=utrgv-faculty,OU=Groups,DC=ad,DC=utrgv,DC=edu)memberOf=CN=utrgv-students,OU=Groups,DC=ad,DC=utrgv,DC=edu))"; //UserAccountControl will only Include Non-Disabled Users. SearchResultCollection result = search.FindAll(); foreach (SearchResult item in result) { if (item.Properties["displayName"].Count > 0) { user.Name = item.Properties["displayName"][0].ToString(); } if (item.Properties["cn"].Count > 0) { user.Cn = item.Properties["cn"][0].ToString(); } if (item.Properties["mail"].Count > 0) { user.Email = item.Properties["mail"][0].ToString(); } } return(user); }
public async Task <IHttpActionResult> me() { UTRGVUserProfile user = _loginProvider.GetUser(User.Identity.Name); var dbUser = await db.Users.Where(u => u.Cn == user.Cn).FirstOrDefaultAsync(); if (dbUser != null) { user.Role = dbUser.Role.Name; } else { user.Role = "Faculty"; } return(Ok(user)); }