prasad
prasad

Reputation: 187

Get Windows sAMAccountName by EmployeeID ActiveDirectory in C#.net

I need to get sAMAccountName by passing EmployeeId to the active directory.

Please help me.

Upvotes: 0

Views: 2029

Answers (2)

slobodan.blazeski
slobodan.blazeski

Reputation: 1040

Try this (with many thanks to VirtualBlackFox)

        string employeeId ="someEmployeeId";
        Domain domain = Domain.GetCurrentDomain();
        var searchRoot = domain.GetDirectoryEntry();
        DirectorySearcher search = new DirectorySearcher(searchRoot);
        search.PropertiesToLoad.Add("EmployeeID");
        search.PropertiesToLoad.Add("sAMAccountName");
        search.Filter = String.Format("(&(objectCategory=person)(EmployeeID={0}))", employeeId );
        SearchResult searchResult =search.FindOne();
        if (searchResult != null)
        {
            object o = searchResult.Properties["sAMAccountName"].OfType<object>().FirstOrDefault();
            if (o != null)
            {
                string sAMAccountName= o.ToString();
            }
        }

Upvotes: 0

Julien Roncaglia
Julien Roncaglia

Reputation: 17837

I don't know what is the EmployeeId for you but here is how to access all the users and display some fields :

Domain domain = Domain.GetCurrentDomain();
var searchRoot = domain.GetDirectoryEntry();

DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = "(&(objectClass=user)(objectCategory=person))";
search.PropertiesToLoad.Add("sAMAccountName");
search.PropertiesToLoad.Add("userPrincipalName");
search.PropertiesToLoad.Add("displayName");

SearchResultCollection results = search.FindAll();
if (results != null)
{
    foreach(SearchResult result in results)
    {
        Console.WriteLine("{0} ({1}) sAMAccountName={2}",
            result.Properties["displayName"].OfType<object>().FirstOrDefault(),
            result.Properties["userPrincipalName"].OfType<object>().FirstOrDefault(),
            result.Properties["sAMAccountName"].OfType<object>().FirstOrDefault());
    }
}

To discover all the fields present on your schema you can use AdExplorer.

Upvotes: 1

Related Questions