我们有几个使用我们公司AD的网站。 目前,为了登录,我们必须使用以下
IUSER \用户ID
代码:
Hashtable<String, String> config = new Hashtable<String, String>();
config.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
config.put("java.naming.provider.url", ldapUrl);
config.put("java.naming.security.authentication", "simple");
config.put("java.naming.security.principal", "iuser\\" + username);
config.put("java.naming.security.credentials", password);
InitialDirContext dirCxt = new InitialDirContext(config);
然而,当我们去搜索AD时,我们只能使用用户ID
SearchControls cons = new SearchControls();
cons.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> resultsEnum =
derek.search("dc=iuser,dc=example,dc=example,dc=com", "(&(objectCategory=user)(cn={0}))", new Object[] {username}, cons);
当我们尝试创建InitialDirContext而不首先放置域时,我们得到User not found response
有没有办法创建InitialDirContext而不必将我们的域名放在用户名前面?
答案 0 :(得分:0)
虽然我建议你宁愿使用Kerberos。您应该尝试使用全局编录而不是<div style="float:left; margin: 0px 7px 0px 7px; line-height: 0; border: 1px solid #021a40; width:100 px"><img src="http://i60.tinypic.com/6ypsoh.png" alt="" /></div>
<div style="float:left; margin: 0px 7px 0px 7px; line-height: 0; border: 1px solid #021a40; width:100 px"><img src="http://i60.tinypic.com/6ypsoh.png" alt="" /></div>
<div style="float:left; margin: 0px 7px 0px px; line-height: 0; border: 1px solid #021a40; width:100 px"><img src="http://i60.tinypic.com/6ypsoh.png" alt="" /></div>
,而是使用commonName
或userPrincipalName
等唯一属性。