Attach是我从IT部门获得的活动目录的图片。现在我想用C#获取经理信息。
注意:我能够获得用户的所有信息,但没有经理的任何密钥,但IT部门只是给了我上面附带的截图。所以,你能从我能得到的地方取得帮助吗?
这是我从下面提到的代码中得到的信息。
public static UserPrincipal GetUser(string sUserName)
{
PrincipalContext oPrincipalContext = GetPrincipalContext();
UserPrincipal oUserPrincipal =
UserPrincipal.FindByIdentity(oPrincipalContext, sUserName);
return oUserPrincipal;
}
答案 0 :(得分:1)
查看属性编辑器选项卡,它列出了对象的所有属性。
该属性确实存在,并且它被称为manager。
DirectoryEntry userEntry = new DirectoryEntry(“LDAP://developer.hamilton.com/CN=Mike Hamilton,DC=developer,DC=Hamilton,DC=com”, “<adminAccountName>”,”<adminPassword”);
在这里,您可以将adminAccountName和adminPassword替换为实际具有执行绑定权限的任何帐户的实际凭据。
答案 1 :(得分:1)
试试这个:
var loginName = @"loginNameOfInterestedUser";
var ldap = new DirectoryEntry("LDAP://domain.something.com");
var search = new DirectorySearcher(ldap)
{
Filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=" + loginName + "))"
};
var result = search.FindOne();
if (result == null)
return;
var fullQuery = result.Path;
var user = new DirectoryEntry(fullQuery);
DirectoryEntry manager;
if (user.Properties.PropertyNames.OfType<string>().Contains("manager"))
{
var managerPath = user.Properties["manager"].Value;
manager = new DirectoryEntry("LDAP://" + managerPath);
}