J'essaie d'obtenir le département de l'utilisateur à partir d'Active Directory. J'ai la classe suivante:Puis-je obtenir le service utilisateur à partir d'Active Directory en utilisant PrincipalContext()
public class DomainContext
{
public string DisplayName { get; set; }
public string Name { get; set; }
public string SamAccountName { get; set; }
public string DistinguishedName { get; set; }
public string UserPrincipalName { get; set; }
public string Department { get; set; }
}
Ensuite, en utilisant la méthode ci-dessous, je suis en mesure d'obtenir le nom d'utilisateur, le nom d'affichage, compte sam, etc ....
public override void getUserDepts(SPItemEventProperties properties)
{
base.ItemUpdating(properties);
string[] offices = new string[] { "OfficeA", "OfficeB", "OfficeC" };
string ADServerName = "*****";
string ADusername = "******";
string ADpassword = "*****";
using (var context = new PrincipalContext(ContextType.Domain, ADServerName, ADusername, ADpassword))
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
var searchResults = searcher.FindAll();
foreach (Principal p in searchResults)
{
if (p.DistinguishedName.ToLower().Contains(offices[0].ToLower()) || p.DistinguishedName.ToLower().Contains(offices[1].ToLower()) || p.DistinguishedName.ToLower().Contains(offices[2].ToLower())))
{
DomainContext dc = new DomainContext();
dc.DisplayName = p.DisplayName;
dc.UserPrincipalName = p.UserPrincipalName;
dc.Name = p.Name;
dc.SamAccountName = p.SamAccountName;
dc.DistinguishedName = p.DistinguishedName;
// dc.Department = p. **CAN NOT GET THE DEPARTMENT NAME**
}
}
}
}
mais je ne peux pas pour trouver comment je peux obtenir le nom du département.
Est-ce que [this] (https://stackoverflow.com/questions/14278274/how-i-get-active-directory-user-properties-with-system- directoryservices-account) ce que vous cherchez? – jAC
Cela pourrait être plus utile - https://stackoverflow.com/questions/1785751/how-to-get-company-and-department-from-active-directory-given-a-userprincipa –