ADAM - 有没有办法“存储”特定于应用程序的属性?

时间:2009-06-29 14:08:01

标签: active-directory adam

我有ADAM设置&我已经编写了Web服务来完成管理任务,例如添加新用户等。(我有多个应用程序使用相同的ADAM实例)

我想要实现的可能听起来有点奇怪 - 但基本上我希望管理员用户能够选择Web服务应从ADAM返回的属性。例如。应用程序1应返回displayName& telephoneNumber但应用程序2可能不需要返回相同的属性。

目前我已经设置了一个SQL Server表来存储用户选择返回的属性。然后在循环通过此循环的Web服务中加载所需的属性并将结果添加到要返回的数组中(如果您感兴趣我将在底部添加代码)。

我想知道是否有更好的方法吗?是否有可能在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 个答案:

答案 0 :(得分:2)