C# 读AD中的组,但读不全,遗漏了部分组。
读域中的组,但读不全。远程客户,在客户的域控上确实能看到很多组,而这些组用我的代码是读不到的!
为什么呢?是有权限管控吗?是有禁止查看组吗?
谁对域比较熟悉的解释一下? --------------------编程问答--------------------
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;
}
附上测试代码! --------------------编程问答-------------------- 谁把这个帖子移到非技术区了,我明明放在C#下!!!! --------------------编程问答-------------------- 上下的“管理菜单”->移动 --------------------编程问答-------------------- 域就像是 sql 的角色 差不多的东西!你说是不是有权限问题?
--------------------编程问答--------------------
可以再详细一些吗?谢谢。 --------------------编程问答-------------------- 域 相当于sql一个数据库
TA 有两个策略
一个是 组策略 相当 数据库的 角色
一个是 用户策略 就相当于 用户
在域里面 可以对 组 和用户 分别赋予权限
--------------------编程问答-------------------- 关于用户权限还是找 域管理员来解决吧。
域控制器 掌握用户的生杀大权 --------------------编程问答-------------------- 嗯,这个我听我们公司的大神说过,前一个项目就用了什么AD啊域的,我不是很明白是什么意思,,他说在网上找了一点资料,不知道是服务器的原因还是权限的原因,有个地方通不过。。后来搞出来了,具体的没跟我们这些人说,他做好后只发布一些WebService服务出来,让我们调用服务,解析数据。。。 --------------------编程问答-------------------- 听他抱怨过,,在网上找了很多资料,搞了2个多星期吧,具体不记得了,反正是在网上反复的找的,反正是有权限的。。大概知道的就这么多,希望能对你有所帮组 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除
补充:.NET技术 , C#