读域中的组,但读不全。远程客户,在客户的域控上确实能看到很多组,而这些组用我的代码是读不到的!为什么呢?是有权限管控吗?是有禁止查看组吗?谁对域比较熟悉的解释一下?

解决方案 »

  1.   


     public List<string> GetOuList(ref List<string> searchList)
            {
                List<string> ouList = new List<string>();            DirectoryEntry objADAM;                   // Binding object.
                DirectoryEntry objGroupEntry;             // Group Results.
                DirectorySearcher objSearchADAM;          // Search object.
                SearchResultCollection objSearchResults;  // Results collection.            // Get the AD LDS object.
                string domainName = GetDomainName();
                string strPath = "LDAP://" + domainName;
                string strPath2 = "LDAP://" + Environment.UserDomainName;            try
                {                objADAM = new DirectoryEntry(strPath, txtUserName.Text.Trim(), txtPassword.Text.Trim());
                    objADAM.RefreshCache();
                }
                catch (Exception ex)
                {
                    sb.Append(string.Format("找不到LDAP路径:{0}. 详细原因:{1}.", strPath, ex.Message));
                    sb.Append("\r\n");
                    return null;
                }
                try
                {
                    objSearchADAM = new DirectorySearcher(objADAM);
                    objSearchADAM.Filter = "(&(objectClass=organizationalUnit))";//group))";
                    objSearchADAM.SearchScope = SearchScope.Subtree;
                    objSearchResults = objSearchADAM.FindAll();
                }
                catch (Exception ex)
                {
                    sb.Append(string.Format("下过滤条件错误:{0}. 详细原因:{1}.", "organizationalUnit", ex.Message));
                    sb.Append("\r\n");
                    return null;
                }
                try
                {
                    if (objSearchResults != null && objSearchResults.Count != 0)
                    {
                        foreach (SearchResult objResult in objSearchResults)
                        {
                            string a = objResult.Path;
                            searchList.Add(a);
                            try
                            {
                                objGroupEntry = objResult.GetDirectoryEntry();
                                string gPath = GetCorrectPath(objGroupEntry.Path.ToString(), domainName);
                                if (gPath != null)
                                {
                                    ouList.Add(gPath);
                                }
                            }
                            catch (Exception ex)
                            {
                                sb.Append(string.Format("找组时出错,详细原因:{1}.", ex.Message));
                                sb.Append("\r\n");
                            }
                        }
                    }
                    else
                    {
                        return null;
                    }
                }
                catch (Exception ex)
                {
                    sb.Append(string.Format("跑循环时出错,详细原因:{1}.", ex.Message));
                    sb.Append("\r\n");
                    return null;
                }
                return ouList;
            }附上测试代码!
      

  2.   

    域就像是 sql 的角色 差不多的东西!你说是不是有权限问题?
      

  3.   

    域 相当于sql一个数据库
      TA 有两个策略
       一个是 组策略 相当 数据库的 角色
       一个是 用户策略 就相当于 用户
    在域里面 可以对 组 和用户 分别赋予权限
      

  4.   

    嗯,这个我听我们公司的大神说过,前一个项目就用了什么AD啊域的,我不是很明白是什么意思,,他说在网上找了一点资料,不知道是服务器的原因还是权限的原因,有个地方通不过。。后来搞出来了,具体的没跟我们这些人说,他做好后只发布一些WebService服务出来,让我们调用服务,解析数据