2009-06-29 14 views
0

Ich habe ADAM Set-up & Ich habe Web-Services geschrieben Admin-Aufgaben zu erledigen, wie das Hinzufügen neuer Benutzer usw. (ich die gleiche ADAM-Instanz mehrere Anwendungen verwendet)ADAM - Gibt es eine Möglichkeit, anwendungsspezifische Attribute zu "speichern"?

Was ich versuche, wird wahrscheinlich zu erreichen klingen ein bisschen seltsam - aber im Grunde möchte ich, dass ein Admin-Benutzer auswählen kann, welche Attribute der Web-Service von ADAM zurückgeben soll. Z.B. Anwendung 1 sollte displayName & phoneNumber zurückgeben, aber Anwendung 2 benötigt möglicherweise nicht dieselben zurückgegebenen Attribute.

Derzeit habe ich eine SQL Server-Tabelle eingerichtet, um die Attribute zu speichern, die der Benutzer & zurückgegeben hat dann im Web-Service durchgeschleift, um die erforderlichen Attribute zu laden und die Ergebnisse zu einem Array zurückgeben (If Ihr interessiert, ich werde den Code am unteren Rand hinzufügen).

Ich wollte wissen, ob es eine bessere Möglichkeit dafür gibt? Ist es möglich, so etwas in ADAM selbst zu speichern?

Vielen Dank im Voraus für jede Hilfe!

//using linq to access table 
DataClasses1DataContext db = new DataClasses1DataContext(); 

var queryAttributes = from atr in db.AttributesToReturns 
         where atr.appNumber == appNumber 
         select atr; 

ArrayList userD = new ArrayList(); 
foreach (var a in queryAttributes) 
{ 
     //the col 'attribute' contains the exact name in active direct e.g. displayName 
     string att = a.attribute.ToString(); 
     searcher.PropertiesToLoad.Add(att); 
    } 

//--code omitted but here perform search & get req Directory Entry 
foreach (var a in queryAttributes) 
{ 
     string attributeName = a.attribute.ToString(); 

     try 
    { 
      string value = user.Properties[attributeName].Value.ToString(); 
      //do something with value - here i am updating a user object which will be added to the ArrayList the webservice is returning 
      updateUser(u, attributeName, value); 
    } 
     //if an error - just set value to empty 
     catch (Exception ex) 
     { 
      string value = "NULL"; 
      updateUser(u, attributeName, value); 
     } 


    } 
     userD.Add(u); 
+0

Mann arbeiten, offensichtlich ist dies nicht speziell schließlich –

Antwort

2
+0

hmmm so :(an mich gerichtet Sie meinen, erstellen Sie ein Attribut, das mehrere Zeichenfolgen speichert und die Attribute hinzufügen, um dort zurückzugeben? Ich werde es versuchen danke :) – samcooper11

+0

Sie können Schema der vorhandenen Objektklassen erweitern, aber Sie können auch neue erstellen, wenn Sie es besser für Ihre Bedürfnisse geeignet fühlen . –

+0

Wenn Sie die LDF-Dateien beibehalten, können Sie auch andere LDAP-Systeme (OpenLDAP, Active Directory und eDirectory, um nur einige zu nennen) erweitern, wenn Sie diese benötigen. –

Verwandte Themen