2010-01-27 3 views
1

Je rencontre des difficultés pour écrire du code Java, ce qui va créer un conteneur/dossier dans ADAM, où le nom du conteneur et le nom distinégué contiennent un barre oblique
par exemple.
cn = test/test
dn = CN = test/test, CN = testStore, DC = MyCompany, DC = COMJava, LDAP, ADAM - Comment créer un conteneur avec une barre oblique dans le nom

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 encore permettre le InitialLdapContext de créer le conteneur avec le nom. Depuis l'application ADAM Adsi Edit, je peux créer des dossiers avec des barres obliques, donc je suppose que le processus peut aussi être fait à partir du code.

Un grand merci à l'avance ...

Répondre

1

relisant 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 poignées l'échappement/non-escaping des caractères spéciaux pour moi ..

merci beaucoup JRL!

0

De Technet, pourraient être utiles:

Si le nom d'une unité d'organisation contient une barre oblique (/), le système exige une évasion caractère sous la forme d'une barre oblique inverse () pour distinguer barres obliques qui séparent les éléments du nom canonique et la barre oblique qui fait partie de la ou ganizational nom de l'unité. Le nom canonique apparaît dans Utilisateurs Active Directory et pages de propriétés Ordinateurs affiche le caractère d'échappement immédiatement précédant la barre oblique dans le nom de l'unité d'organisation. Pour exemple, si le nom d'une unité d'organisation est Promotions/Nord-Est et le nom de le domaine est Reskit.com, le nom canonique est affiché comme Reskit.com/Promotions/Northeast

+0

Merci, j'ai lu par: http://java.sun.com/products/jndi/tutorial/beyond/names/syntax.html et ont essayé des variations de antislashs échappe: chaîne ContainerDN = " dn = CN = test/test ... "; Chaîne de conteneurDN = "dn = CN = test \/test; \\ errorInvaliudEscapeChar Chaîne de conteneurDN =" dn = CN = test \\/test "; Chaîne de conteneurDN =" dn = CN = test \\\\/test; String containerDN = "dn = CN = test \\\\\\/test"; String containerDN = "dn = CN = test \\\\\\\\/test"; En vain ... – DeclanWilson

+0

@DeclanWilson: dans le lien que vous avez fourni, il parle de noms composites ... cela peut-il être lié à cela? – JRL

Questions connexes