Уведомления Active Directory - как определить, является ли изменение новым пользователем - PullRequest
2 голосов
/ 10 февраля 2012

У меня нормально работают уведомления AD, я наблюдаю за изменениями в подразделениях (используя уведомление об изменении из http://dunnry.com/blog/ImplementingChangeNotificationsInNET.aspx).. Когда создается новый пользователь, генерируются два уведомления, и у меня возникают проблемы с их разделением).Мое предположение (опасно, что я знаю) состоит в том, что пользователь сначала создается, затем модифицируется, но я не уверен, что это так.

Вначале я думал о том, чтобы использовать uSNCreated и uSNChanged, но они отличаются даже напервое уведомление. Точно так же когда whenCreated, whenChanged и modifyTimeStamp одинаковы для каждого результата для двух записей.

Ясно, что должен быть способ сделать это, но я не вижу ни одного атрибута, который может однозначно идентифицироватьпервое уведомление от второго.

Есть какие-нибудь подсказки?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2012

Два уведомления приходят от AD, создающего объект и затем устанавливающего пароль для Пользователя.

uSNChanged это путь сюда. Чем выше значение, тем последнее изменение. Уловка в .NET переводит это значение без использования библиотеки icky Active Ds COM.

Есть несколько вопросов, которые уже касаются управления свойством uSNChanged .NET-дружественным способом:

0 голосов
/ 10 февраля 2012

usnChanged основан на счетчике, который обновляется постепенно для каждого изменения в AD, пока вы разговариваете с одним и тем же DC.Для ваших данных об изменениях вы можете взять последние два и использовать эту запись.Чтобы определить, является ли запись новой, вы можете просто отследить наибольшее из всех значений usnChanged, которые вы видели из ранее полученных изменений, и сравнить с ними значение usnCreated.Если значение usnCreated больше, это новая запись.

Вы также можете использовать самое высокое значениеCommittedUSN из RootDSE в качестве сохраненного значения для сравнения, но для этого потребуется выполнить отдельный запрос после завершения обработки уведомления об изменениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...