Вот код, который я использую для получения объекта DirectoryEntry
Код: Выделить всё
public static DirectoryEntry GetArsDirectory(string domain, string account)
{
DirectoryEntry de = null;
string acct = GetAcct(domain);
string cred = Properties.GetResource(domain);
string pass = RetrieveCred(cred, acct);
bool bind = GetARSBind();
if (bind)
{
const AuthenticationTypes ADS_EDMSERVER_BIND = (AuthenticationTypes)0x8000;
string ARSPath = $"EDMS://{GetARSBindServer(domain)}{account}";
de = new DirectoryEntry($"{ARSPath}", $@"{domain}\{acct}", RetrieveCred(Properties.GetDomain1ServiceResource(), acct),
ADS_EDMSERVER_BIND);
}
else
{
de = new DirectoryEntry($"EDMS://{account}", $@"{domain}\{acct}", pass);
}
return de;
}
но когда я беру запись и пытаюсь прочитать какое-либо свойство (например, sAMAccountName), оно выдает ошибки, если я не запускаю с сервера с установленной библиотекой QuestARS этого домена. Я также обнаружил, что в версии 7.2 не принимается предоставление учетных данных и имени пользователя полученной учетной записи службы. они оба должны быть нулевыми, чтобы запись могла прочитать свойство. Когда я читал версии 6.9–7.1 и наоборот, такого никогда не было.
Было ли в версии 7.2 изменение, которое делало чтение несовместимым между версиями 7.2 и 6.9?
Подробнее здесь: https://stackoverflow.com/questions/799 ... ctoryentry
Мобильная версия