C# 读AD中的组,但读不全,遗漏了部分组。

takako_mu 2012-11-22 04:35:23
读域中的组,但读不全。

远程客户,在客户的域控上确实能看到很多组,而这些组用我的代码是读不到的!

为什么呢?是有权限管控吗?是有禁止查看组吗?

谁对域比较熟悉的解释一下?
...全文
185 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
闪耀的瞬间 2012-11-22
  • 打赏
  • 举报
回复
听他抱怨过,,在网上找了很多资料,搞了2个多星期吧,具体不记得了,反正是在网上反复的找的,反正是有权限的。。大概知道的就这么多,希望能对你有所帮组
闪耀的瞬间 2012-11-22
  • 打赏
  • 举报
回复
嗯,这个我听我们公司的大神说过,前一个项目就用了什么AD啊域的,我不是很明白是什么意思,,他说在网上找了一点资料,不知道是服务器的原因还是权限的原因,有个地方通不过。。后来搞出来了,具体的没跟我们这些人说,他做好后只发布一些WebService服务出来,让我们调用服务,解析数据。。。
  • 打赏
  • 举报
回复
关于用户权限还是找 域管理员来解决吧。 域控制器 掌握用户的生杀大权
  • 打赏
  • 举报
回复
域 相当于sql一个数据库 TA 有两个策略 一个是 组策略 相当 数据库的 角色 一个是 用户策略 就相当于 用户 在域里面 可以对 组 和用户 分别赋予权限
takako_mu 2012-11-22
  • 打赏
  • 举报
回复
引用 4 楼 shwicho 的回复:
域就像是 sql 的角色 差不多的东西!你说是不是有权限问题?
可以再详细一些吗?谢谢。
  • 打赏
  • 举报
回复
域就像是 sql 的角色 差不多的东西!你说是不是有权限问题?
51Crack 2012-11-22
  • 打赏
  • 举报
回复
上下的“管理菜单”->移动
takako_mu 2012-11-22
  • 打赏
  • 举报
回复
谁把这个帖子移到非技术区了,我明明放在C#下!!!!
takako_mu 2012-11-22
  • 打赏
  • 举报
回复

 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;
        }
附上测试代码!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧