Я пытался прочитать и установить свойство DepartmentNumber для объекта DirectoryEntry , используя C #, но у меня всегда возникает проблема, что при использовании ADSI Edit я не вижу ничего вэта запись была изменена.
Подходы, которые я до сих пор пробовал, включают:
directoryEntry.Properties["departmentNumber"].Value = new object[]{ "SomeContent" };
и
directoryEntry.InvokeSet("departmentNumber", new object[]{ "SomeContent" };
и
directoryEntry.Invoke("PutEx", new object[]{ 2, "departmentNumber", new object[]{"SomeContent"}});
и
directoryEntry.Invoke("Put", new object[]{ "departmentNumber", "SomeContent" });
Обновление За всем вышеперечисленным следует directoryEntry.CommitChanges (); .
Что бы я ни пытался, я делаю (с некоторыми из приведенных выше примеров) получить результаты с точки зрения возможности повторного считывания значения с использованием соответствующего кода, но всякий раз, когда я использую ADSI-редактор и смотрю на свойства пользователя, я не вижу, что DepartmentNumber содержит какие-либо данные.
Если я установлю для свойства определенное значение с помощью ADSI-Editor, я также не смогу запросить это конкретное значение через C #, но я могу использовать очень простой скрипт VB, как показано ниже:
Set objUser = GetObject("LDAP://CN=........")
objUser.GetInfo
objUser.PutEx 2, "departmentNumber", Array("SomeContent")
Это меняет значение свойствачто я вижу в ADSI-редакторе, но опять же, используя C #, я не могу его прочитать.
В чем здесь проблема, и почему она выглядит так, как будто есть два разных свойства "DepartmentNumber"?Несмотря на попытки найти кого-то с той же проблемой, я не нашел ни ответов, ни указателей в правильном направлении, поэтому любая помощь очень ценится.Пожалуйста, спросите, если вам нужна дополнительная информация.