Пакет, который вы пытались использовать, последний раз обновлялся в 2014 году. Он не соответствует ни .NET Core, ни .NET Standard.
Вместо этого вы можете попробовать Novell.Directory.Ldap.NETStandard .Несмотря на название, это не библиотека Novell.В NuGet есть и другие библиотеки LDAP, но это, кажется, самая популярная программа, которая все еще активно развивается.
Исключение предполагает, что вы также забыли избавиться от соединения.Finalize
вызывается только сборщиком мусора.
Этот ответ показывает, как использовать Novell.Directory.Ldap.NETStandard для аутентификации пользователя:
public bool ValidateUser(string domainName, string username, string password)
{
string userDn = $"{username}@{domainName}";
try
{
using (var connection = new LdapConnection {SecureSocketLayer = false})
{
connection.Connect(domainName, LdapConnection.DEFAULT_PORT);
connection.Bind(userDn, password);
if (connection.Bound)
return true;
}
}
catch (LdapException ex)
{
// Log exception
}
return false;
}
Соединение создается внутри блока using
, что гарантирует его удаление, как только выполнение выходит из области действия блока