【问题标题】:Obtaining a list of direct reports from the current user获取当前用户的直接下属列表
【发布时间】:2013-05-20 19:01:52
【问题描述】:

我检查了另外两个线程,甚至使用了其中一个线程的代码,但它从未填充列表。当我打开 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();

    }

我尝试过使用ReportsdirectReports,但都没有解决这两个错误。

此方法加载登录用户或我传递给它的任何用户。我可以访问他们的所有财产,但我似乎无法访问他们的直接下属。

我错过了什么?

找到答案:

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);
            }

【问题讨论】:

    标签: c# active-directory ldap


    【解决方案1】:
    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);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 2023-02-13
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-28
      • 2016-10-18
      相关资源
      最近更新 更多