Domanda
Sto cercando un parser LDIF per C #. Sto cercando di analizzare un file LDIF in modo che posso controllare non esistono oggetti prima di aggiungere loro. L'aggiunta di loro quando il già esistono utilizzando ntdsSchemaAdd) causa una voce nel log degli errori.
Soluzione
Un websearch rapida rivelato: http://wiki.github.com/skradel/Zetetic .Ldap / . Essi hanno fornito un'API .NET.
Dalla pagina:
Zetetic.Ldap è una libreria .NET per NET 2 e sopra, che lo rende più facile lavorare con i server di directory (Come Active Directory, ADAM, Red Hat Directory Server, e altri). Alcuni le caratteristiche fondamentali di Zetetic.Ldap sono:
parsing di file 1.LDIF e la generazione - leggere e scrivere il formato di file utilizzato per lo spostamento di dati tra circa sistemi di directory
2.LDAP Entry-oriented API con il rilevamento delle modifiche - Creazione e modifica di directory oggetti in un modo più naturale
3.LDAP Schema interrogatorio - accesso programmatico rapido al tipo di oggetti e campi vostra directory Server capisce. Scopri se un attributo è una stringa, un numero, una data, ecc, senza un sacco di manuali ricerca e ri-analisi
4.LDIF Pivoter - Girare un file LDIF in un (virgola o delimitato da tabulazioni) piatta file per analisi o il caricamento in sistemi che non parlano LDIF Abbiamo costruito la libreria Zetetic.Ldap fare progetti di directory e di programmazione veloce e più facile, e rilasciarlo qui nella speranza che gli altri lo troveranno utile anche. Per quanto ne sappiamo, questo è l'unica libreria .NET che in realtà capisce la specifica LDIF.
Download link: http://github.com/downloads/ skradel / Zetetic.Ldap / Zetetic.Ldap_20090831.zip
Altri suggerimenti
Vorrei analizzare io stesso.
Se si guarda alla LDIF RFC per l'EBNF, vedrete che si tratta di non una grammatica molto complesso.
Ho analizzato una grande quantità di LDIF prima di usare espressioni regolari in modo affidabile. Anche se la vostra situazione potrebbe essere diversa.