怎样获取ldap条目的子条目

 我来答
百度网友96ffcf7
推荐于2016-04-25 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118726
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
//检索条目的下级条目
//ldappath
本级条目路径,如:dc=cs,dc=hunan,dc=com
//attrname
用于过滤的属性名,即条目包含该属性,可为空串
//attrval 用于过滤的属性值,即上面的属性包含该属性值,可为空串
//注意,当attrname为空串时,将忽略attrval
//这个函数会返回NamingEnumeration对象,通过这个对象,我们可以遍历出所有搜索到的结果
static
public NamingEnumeration<Object> SearchSubEntry(String ldappath,String
attrname,String attrval)
{
NamingEnumeration ret =
null;
DirContext ctx =
null;
ctx = GetConnection(); //取连接对象
if(ctx
!=
null)
{
try
{
if(IsExist(ldappath)) //先判断一下这个条目是不是存在
{
//设定搜索条件
Attributes
matchAttrs = new BasicAttributes(true); //建一个属性集合对象
if(attrname.compareTo("")
!=
0) //如果传入了属性名称条件就加到属性集合里
matchAttrs.put(new
BasicAttribute(attrname, attrval));
//搜索符合条件的结果
NamingEnumeration
answer = ctx.search(ldappath, matchAttrs);
ret
=
answer;
}
}
catch(NamingException
ex)
{
ret =
null; //出现异常时会返回null
ex.printStackTrace();
}
}
return
ret;
}

3、将上面函数的返回对象转成一个ArrayList,这样感觉更好使用,如下:

ArrayList<String>
mylist= new ArrayList<String>();
NamingEnumeration<Object> sret =
null;
sret =
SearchSubEntry("dc=cs,dc=hunan,dc=com","","");
while
(sret.hasMore())
{
SearchResult sr =
(SearchResult)
sret.next();
mylist.add(sr.getName());
}

这样,得到的mylist就是一个包含检索结果的字符串集合,每一项就是一个子条目的名称。
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式