How I get Active Directory User Properties with System.DirectoryServices.AccountManagement Namespace?
30,313
Solution 1
You can transition into the DirectoryServices namespace to get any property you need.
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc);
UserPrincipal u = UserPrincipal.FindByIdentity(ctx, user);
string firstname = u.GivenName;
string lastname = u.Surname;
string email = u.EmailAddress;
string telephone = u.VoiceTelephoneNumber;
string company = String.Empty;
...//how I can get company and other properties?
if (userPrincipal.GetUnderlyingObjectType() == typeof(DirectoryEntry))
{
// Transition to directory entry to get other properties
using (var entry = (DirectoryEntry)userPrincipal.GetUnderlyingObject())
{
if (entry.Properties["company"] != null)
company = entry.Properties["company"].Value.ToString();
}
}
Solution 2
If you want to change the proppertie dont forget to call userPrincipal.save() after you changed the value.
entry.Properties["company"].value = company;
userPrincipal.save();
Comments
-
Tarasov over 3 years
I want do get Active Directory Properties from a user and I want to use
System.DirectoryServices.AccountManagement
.my code:
public static void GetUserProperties(string dc,string user) { PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc); UserPrincipal u = UserPrincipal.FindByIdentity(ctx, user); string firstname = u.GivenName; string lastname = u.Surname; string email = u.EmailAddress; string telephone = u.VoiceTelephoneNumber; ...//how I can get company and other properties? }