Я использую тот же идентификатор пользователя, строку подключения LDAP для привязки к серверу LDAP и получения информации.
Инструмент №1 предоставляет msExchMailboxGuid последовательно и надежно.
Инструмент № 2 (.NET) не предоставляет msExchMailboxGuid. Бывают случаи, когда он равен нулю, а в других случаях - нет.
(Примечание: я не ищу поддержки кода / разработчика)
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://ldap.exchange.serverdata.net:636/DC=exchange,DC=serverpod,DC=net";
de.Password = "PASSWORD";
de.Username = "LDAP@copmany.com";
de.AuthenticationType = AuthenticationTypes.Secure;
DirectorySearcher ds = new DirectorySearcher();
ds.PropertiesToLoad.Add("cn");
ds.PropertiesToLoad.Add("mail");
ds.PropertiesToLoad.Add("samAccountName");
ds.PropertiesToLoad.Add("msExchMailboxGuid");
ds.PropertiesToLoad.Add("proxyAddresses");
ds.PropertiesToLoad.Add("targetAddress");
ds.PageSize = 800;
ds.Filter = "(&(objectCategory=person)(mail=user1@company.com))";
SearchResultCollection results = ds.FindAll();
Этот код очень простой, но когда я заменяю user1@company.com на user2@company.com, атрибут пропадает. (но видно в других инструментах)
Есть ли какая-то логическая причина, по которой атрибут AD может отсутствовать при определенных обстоятельствах? Что это за обстоятельства?
Как я могу отладить такой запрос LDAP?