我有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);
答案 0 :(得分:2)