Когда мы пытаемся найти пользователя в ActiveDirectory, мы получаем это исключение - 0x8007203B
.
В основном мы развернули веб-сервис, который использует класс DirectoryEntry
& DirectorySearcher
для поиска пользователя в AD, и иногда это исключение происходит. Но когда мы делаем IISReset, он снова работает нормально.
Код очень прост, как это:
DirectoryEntry domainUser = new DirectoryEntry("LDAP://xxx.yyy/dc=xxx,dc=yyy", "domain\user", "pwd", AuthenticationTypes.Secure);
DirectoryEntry result = new DirectorySearcher(domainUser, filter);
Только несколько раз это случается. У меня не так много информации, чтобы дать какие-либо предположения, высоко ценится
Вот так выглядит мой фильтр
public static string BuildFilter(DirectoryEntry dirEntry, string userName, string userMail)
{
try
{
string filter = string.Empty;
if (!string.IsNullOrEmpty(userName) && string.IsNullOrEmpty(userMail))
filter = string.Format(@"(&(objectClass=user)(samaccounttype=805306368)(|(CN={0})(samaccountname={0})))", userName);
else if (string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(userMail))
filter = string.Format(@"(&(objectClass=user)(samaccounttype=805306368)(mail={0}))", userMail);
else
filter = string.Format(@"(&(objectClass=user)(samaccounttype=805306368)(|(CN={0})(samaccountname={0})(mail={1})))", userName, userMail);
return filter;
}
catch (Exception ex)
{
_logger.Error("BuildUserSearch - Failed to build LDAP search", ex);
}
return null;
}