2009-04-14 4 views
0

Ich suche nach dem besten Weg, um eine Konfigurationsdatei in einem LDAP-Server zu speichern. Meine Anwendung zum Speichern der Benutzereinstellungen in einer XML-Datei. Die Benutzeranmeldungen wurden auf einem LDAP-Server zentralisiert. Die Benutzer werden als "inetOrgPerson" im LDAP-Server gespeichert. Ich möchte die XML-Datei an jeden Benutzer anhängen.Wie speichert man eine Datei in LDAP?

Was wäre der beste Weg, es zu tun? Bietet ein Standard-LDAP-Schema eine Klasse zum Speichern einer Textdatei an? Oder muss ich das Schema für meine Bedürfnisse erweitern?

Antwort

5

Nun, die beste Lösung wäre wahrscheinlich, die Konfigurationswerte direkt im LDAP-Schema zu speichern. LDAP eignet sich nicht zum Speichern von Dateien oder anderen großen Einträgen.

Sie können natürlich die gesamte Datei entweder als String oder als Binärdaten im LDAP-Verzeichnis speichern. Aber ich schlage vor, dass Sie stattdessen den Pfad zu einer netzwerkfähigen Datei speichern und ein geeignetes Netzwerk-Dateisystem zum Speichern der eigentlichen Datei verwenden.

+0

Ich weiß, aber ich will nicht so viel in der Anwendung ändern und ich brauche nicht die Einstellungen zu suchen. Deshalb würde ich lieber die gesamte XML-Datei speichern. – Name

2

Entschuldigung, Sie wählen den falschen Server für Ihre Ziele. Die Verwendung eines Authentifizierungs-Verzeichnisservers & für die Datenspeicherung ist ungefähr so ​​sinnvoll, wie die Verwendung eines E-Mail-Servers für diesen Zweck &.

Darüber hinaus betrachten (Nicking ein Raymond Chen Argument) Was passieren würde, wenn es möglich wäre, 1 Datei pro Benutzer in einem LDAP-Server zu speichern. Jetzt stellen Sie sich vor, wir haben zwei Anwendungen, die versuchen, in diese eine Datei zu speichern. Die logische Schlussfolgerung ist also, dass Sie keine Datei haben können, aber in LDAP ein Dateisystem benötigen.

+0

Ich stimme nicht zu. Ich suche nach einer Klasse, um eine Datei zu speichern, was bedeutet, dass ein Benutzer mehrere Instanzen der Klasse haben kann, so dass mehrere Anwendungen gleichzeitig eine Datei speichern können. – Name

+0

Weiter denke ich, dass ein Verzeichnis kein so schlechter Ort für Personalisierungsdaten ist, also zum Speichern von Benutzerpräferenzen. – Name

+2

Für die Nachwelt stimme ich mit MSalters überein, dass dies eine schlechte Idee ist. Benutzereinstellungen sollten * Eigenschaften * in einem LDAP-Schema sein, aber das Speichern einer Datei in einem LDAP-Profil ist eindeutig Unsinn. Das Speichern von Pfaden zu Verzeichnissen, in denen Benutzerkonfigurationsdetails gespeichert sind (d. H. Auf Netzwerk-Volumes), ist jedoch ein vollkommen legitimierter und sehr gut etablierter Ansatz (und wie funktioniert die Verzeichnisintegration in Solaris und Mac OS X). –

0

Soweit ich gesehen habe, gibt es kein Standard-LDAP-Schema zum Speichern einer Datei. Der beste Weg wäre, das Schema zu erweitern. Solange Sie immer den gleichen LDAP-Server verwenden und diesen konfigurieren dürfen, sollte dies kein Problem darstellen. Wenn Sie verschiedene Server (OpenLDAP, ApacheDS, ...) haben, müssen Sie lernen, wie Sie es für jeden Server tun.

4

Es scheint mir, dass dies ziemlich häufig ist, haben iNetOrgPerson Einträge jpeg-Dateien für ein Bild des Benutzers. Die Syntax (jpegPhot-Eintrag) ist 1.3.6.1.4.1.1466.115.121.1.25 Es gibt auch die binäre Syntax 1.3.6.1.4.1.1466.115.121.1.5 - Binäre Syntax , die zum Halten der meisten verwendet wird Certs (Dateien)

Sie möchten vielleicht nur ein eigenes Schema mit einer Dateiklasse definieren und die binäre Syntax verwenden. Das ist was ich mache.

Cheers, Scott

+0

Beliebige Beispiele dafür können Sie bereitstellen? –