Java,LDAP,ADAM - 如何在名称中创建带正斜杠的容器

时间:2010-01-27 12:09:27

标签: java ldap jndi

我在编写一些Java代码时遇到问题,这些代码将在ADAM中创建一个容器/文件夹,其中容器名称和区别名称包含正斜杠。
例如
    CN =测试/检验
    dn = CN = test / test,CN = TestStore,DC = MyCompany,DC = COM

LdapContext _ctx = getNewContext(valid_userName, valid_userName, valid_userName);
  // uses InitialLdapContext under the hood 

String containerDN = "dn=CN=test/test,CN=TestStore,DC=MyCompany,DC=COM"
_ctx.createSubcontext(containerDN, attrs); // assume attrs is valid javax.naming.directory.Attributes

我正在努力从Java String对象中获取正斜杠,但仍允许InitialLdapContext创建具有名称的容器。

在ADAM Adsi Edit应用程序中,我可以使用正斜杠创建文件夹,因此我认为该过程也可以通过代码完成。

非常感谢...

2 个答案:

答案 0 :(得分:1)

重新阅读用于LDAPContext的JavaDocs API和DirContext ...重载方法createSubContext()提供:

public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException

Name接口,具体类CompositeName为我处理特殊字符的转义/取消转义......

非常感谢JRL!

答案 1 :(得分:0)

来自Technet,可能有用:

  

如果是组织单位的名称   包含正斜杠字符   (/),系统需要逃脱   反斜杠形式的字符   ()区分前进   削减分隔的元素   规范名称和正斜杠   这是组织的一部分   单位名称。规范的名称   出现在Active Directory用户和   显示计算机属性页面   逃脱角色立刻   在前进的斜线之前   组织单位的名称。对于   例如,如果名称   组织单位是   促销/东北和的名称   域名是Reskit.com,   规范名称显示为   Reskit.com/Promotions/Northeast