Java, LDAP, ADAM - Comment puis-je créer un conteneur avec une barre oblique au nom
Question
Je ne parviens pas à écrire du code Java qui va créer un conteneur / dossier dans ADAM, où le nom du conteneur et le nom distinughed contiennent une barre oblique.
par exemple
cn = test / test
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
Je me bats pour escpae la barre oblique de l'objet String Java, et permettent encore la InitialLdapContext pour créer le conteneur avec le nom.
ADAM de la ADSI Edit l'application, je peux créer des dossiers avec des barres obliques vers l'avant, donc je suppose que le processus peut être fait à partir de code.
Un grand merci à l'avance ...
La solution
Relire l'API JavaDocs pour LDAPContext et DirContext ... une méthode surchargée createSubcontextQ () offre:
public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
l'interface Nom, CompositeName classe béton gère l'échappement / non-escaping des caractères spéciaux pour moi ...
merci beaucoup JRL!
Autres conseils
De Technet , pourraient être utiles:
Si le nom d'une unité d'organisation contient une barre oblique (/), Le système nécessite une évasion caractère sous la forme d'une barre oblique inverse () De faire la distinction entre la marche avant des barres obliques que les éléments séparés de la nom canonique et la barre oblique qui fait partie de l'organisation nom de l'unité. Le nom canonique apparaît dans Active Directory utilisateurs et Ordinateurs pages de propriétés affiche le caractère d'échappement immédiatement précédant la barre oblique dans le le nom de l'unité organisationnelle. Pour Par exemple, si le nom d'un l'unité d'organisation est Promotions / Nord-Est et le nom de le domaine est Reskit.com, la nom canonique est affiché comme Reskit.com/Promotions/Northeast