У меня есть настройка 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);