Я пытался прочитать и установить свойство 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 и просматриваю свойства пользователя, я не может видеть, что номер_департамента содержит какие-либо данные.
Если я установлю для свойства определенное значение с помощью ADSI-Editor, я также не смогу запросить это конкретное значение через C#, но я могу использовать очень простой сценарий VB, как показано ниже:
Set objUser = GetObject("LDAP://CN=........")
objUser.GetInfo
objUser.PutEx 2, "departmentNumber", Array("SomeContent")
Это изменяет значение свойства, которое я вижу в редакторе ADSI, но опять же, используя C#, я не могу его прочитать.
В чем здесь проблема и почему это выглядит так, как будто есть два разных свойства "departmentNumber"? Несмотря на попытки найти кого-то с такой же проблемой, я не нашел ответов или даже указателей в правильном направлении, поэтому любая помощь очень ценится. Пожалуйста, также спросите, если вам нужна дополнительная информация.