Java, LDAP, ADAM - Come si crea un contenitore con una barra nel nome
Domanda
Sto avendo difficoltà a scrivere del codice Java, che creerà un contenitore / cartella in ADAM, in cui il nome del contenitore e il nome distinughed contengono una barra.
per esempio
CN = test / prova
dn = CN = test / prova, 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
Ho difficoltà a escpae la barra dall'oggetto Java String, e tuttavia consentire al InitialLdapContext per creare il contenitore con il nome.
dall'applicazione ADAM ADSI Edit, posso creare cartelle con slash, quindi presumo il processo può essere fatto dal codice pure.
Molte grazie in anticipo ...
Soluzione
Rileggendo l'API JavaDocs per LDAPContext e DirContext ... un metodo di overload createSubcontext () offre:
public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
l'interfaccia Nome, calcestruzzo di classe CompositeName gestisce la fuga / non-escape di caratteri speciali per me ...
molte grazie JRL!
Altri suggerimenti
Technet , potrebbe essere utile:
Se il nome di un'unità organizzativa contiene un carattere di barra (/), Il sistema richiede una fuga carattere sotto forma di una barra rovesciata () Per distinguere tra avanti barre che singoli elementi del nome canonico e la barra che fa parte del modello di organizzazione nome dell'unità. Il nome canonico che appare in Active Directory Users e Computer proprietà pagine display il carattere di escape subito precede la barra diretta nel nome dell'unità organizzativa. Per Se ad esempio il nome di un unità organizzativa è Promozioni / nord-est e il nome del il dominio è Reskit.com, il nome canonico viene visualizzato come Reskit.com/Promotions/Northeast