Return to Snippet

Revision: 40539
at February 3, 2011 10:00 by lance

Initial Code
public UserPrincipal GetLoggedInUser()
                //Get the principal logged in user
                WindowsPrincipal principal = System.Threading.Thread.CurrentPrincipal as WindowsPrincipal;

                //split the principal identity name from the domain and put them in an array
                string delimiter = "\\";
                string userAndDomain = principal.Identity.Name.ToString();
                string[] arrayName = userAndDomain.Split(delimiter.ToCharArray());
                //Get the context of this action based on the first item in the arrayName which is the domain
                PrincipalContext pc = new PrincipalContext(ContextType.Domain, arrayName[0]);
                //Get the userprincipal (user) by matching the username in active directory and the name in the array
                UserPrincipal p = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, arrayName[1]);

                //make sure the userprincipal is a directoryentry then get the user
                if (p.GetUnderlyingObjectType() == typeof(DirectoryEntry))
                    DirectoryEntry user = (DirectoryEntry)p.GetUnderlyingObject();

                    //The EmpID is located in the wwwHomePage field in AD
                    if (user.Properties["wwwHomePage"].Count > 0)
                        //set a variable to the wwwHomePage property so we can return it
                        empID = Convert.ToInt32(user.Properties["wwwHomePage"].Value);
                        empID = 0;
                return p;
            catch (Exception ex)
                return null;

Initial URL

Initial Description

Initial Title
Get logged in user from Active Directory and then get some of their AD attributes

Initial Tags

Initial Language