Active Directory - Getting a user's Contact Info from AD
Saving a snippet of code...
[EnvironmentPermissionAttribute(SecurityAction.LinkDemand, Unrestricted = true)] private void accessAdEmpDetails() { string[] TempUserId = new string[2]; // Username/Password with rights to query AD string activeDirUsername = ConfigurationManager.AppSettings["adUserName"]; string activeDirPassword = ConfigurationManager.AppSettings["adPassword"]; string[] activeDirServerNames = new string[] { ConfigurationManager.AppSettings["adLink1"], ConfigurationManager.AppSettings["adLink2"], ConfigurationManager.AppSettings["adLink3"], ConfigurationManager.AppSettings["adLink4"], ConfigurationManager.AppSettings["adLink5"] }; WindowsIdentity WindowsIdentity = WindowsIdentity.GetCurrent(); WindowsPrincipal WindowsPrincipal = new WindowsPrincipal(WindowsIdentity); char[] SeparatorSlash = { '\\' }; TempUserId = Page.User.Identity.Name.Split(SeparatorSlash, 2); // Keeping user Id into the Session variable to furthur use. Session["USER_ID"] = TempUserId[1]; if (WindowsIdentity.AuthenticationType.ToUpper().Equals("KERBEROS")) { // Loop through AD servers foreach (string serverName in activeDirServerNames) { // Get a DirectoryEntry from each AD server using (DirectoryEntry entry = new DirectoryEntry(serverName)) { entry.Username = activeDirUsername; //User to access AD entry.Password = activeDirPassword; //Pwd to access AD using (DirectorySearcher searcher = new DirectorySearcher(entry)) { searcher.Filter = "(&(objectClass=user)(samaccountname=" + TempUserId[1] + "))"; SearchResult Result = searcher.FindOne(); if (Result != null) { if (Result.GetDirectoryEntry().Properties["departmentNumber"].Value != null) { userDept = Result.GetDirectoryEntry().Properties["departmentNumber"].Value.ToString(); } if (!string.IsNullOrEmpty(Result.GetDirectoryEntry().Properties["name"].Value.ToString())) { userName = Result.GetDirectoryEntry().Properties["name"].Value.ToString(); } if (Result.GetDirectoryEntry().Properties["physicalDeliveryOfficeName"].Value != null) { userLocation = Result.GetDirectoryEntry().Properties["physicalDeliveryOfficeName"].Value.ToString(); } if (Result.GetDirectoryEntry().Properties["mail"].Value != null) { userMail = Result.GetDirectoryEntry().Properties["mail"].Value.ToString(); } if (Result.GetDirectoryEntry().Properties["telephoneNumber"].Value != null) { userPhone = Result.GetDirectoryEntry().Properties["telephoneNumber"].Value.ToString(); } } } } } } }
No comments:
Post a Comment