ADAM - есть ли способ «хранить» специфичные для приложения атрибуты? - PullRequest
0 голосов
/ 29 июня 2009

У меня есть настройка ADAM и я написал веб-службы для выполнения задач администратора, таких как добавление новых пользователей и т. Д. (У меня есть несколько приложений, использующих один и тот же экземпляр ADAM)

То, что я пытаюсь достичь, будет звучать немного странно, но в основном я хочу, чтобы пользователь-администратор мог выбирать, какие атрибуты веб-служба должна возвращать из ADAM. Например. приложение 1 должно вернуть displayName & telephoneNumber, но приложение 2 может не нуждаться в возвращаемых атрибутах.

В настоящее время я настроил таблицу SQL Server для хранения атрибутов, которые пользователь выбрал для возврата, а затем в веб-службе зациклился на этом, чтобы загрузить необходимые атрибуты и добавить результаты в возвращаемый массив (если ваш интересно добавлю код внизу).

Я хотел знать, есть ли лучший способ сделать это? Можно ли хранить что-то подобное в самом ADAM?

Заранее спасибо за любую помощь!

//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);

1 Ответ

2 голосов
/ 29 июня 2009

Вы можете расширить схему http://technet.microsoft.com/en-us/library/cc759734(WS.10).aspx

Это для OpenLDAP, но файлы LDF по-прежнему должны работать http://www.ibm.com/developerworks/websphere/library/techarticles/0302_singh/singh.html

...