Jam*_*son 7 c# ldap active-directory
我检查了另外两个线程,甚至使用了一个代码,但它从不填充列表.当我打开Active Directory用户和计算机并转到我在组织下的经理时,我会看到他的直接下属列表.
我想要做的是通过代码访问该列表.到目前为止我找到的任何东西似乎都没有用.
public void GetDirectoryEntry(string adUserName)
{
DirectoryEntry de = new DirectoryEntry("LDAP://server.server.com");
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + adUserName + "))";
ds.SearchScope = SearchScope.Subtree;
SearchResult rs = ds.FindOne();
string distinguishedName = rs.Properties["distinguishedName"][0].ToString();
string department = rs.Properties["department"][0].ToString();
string manager = rs.Properties["manager"][0].ToString();
//string temp3 = rs.Properties["Reports"][0].ToString();
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用Reports并且directReports两者都没有出错.
此方法加载登录用户或我传入其中的任何用户.我可以访问他们所有的属性,但我似乎无法访问他们的直接报告.
我错过了什么?
找到答案:
foreach (string objProperty in rs.Properties["DirectReports"])
{
isManager = true;
string emp = objProperty.ToString();
string[] setp = new string[1];
setp[0] = "DC"; //If your users are in a OU use OU
emp = emp.Split(setp, StringSplitOptions.None)[0];
emp = emp.Replace("CN=", "");
emp = emp.TrimEnd(',');
emp = emp.Replace("\\, ", ", ");
emp = emp.Split(',')[0];
//emps.Add(emp);
}
Run Code Online (Sandbox Code Playgroud)
foreach (string objProperty in rs.Properties["DirectReports"])
{
isManager = true;
string emp = objProperty.ToString();
string[] setp = new string[1];
setp[0] = "DC"; //If your users are in a OU use OU
emp = emp.Split(setp, StringSplitOptions.None)[0];
emp = emp.Replace("CN=", "");
emp = emp.TrimEnd(',');
emp = emp.Replace("\\, ", ", ");
emp = emp.Split(',')[0];
//emps.Add(emp);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4236 次 |
| 最近记录: |