我正在尝试使用现有的
DirectorySearcher
对象创建一个DirectoryEntry
对象,但是当我这样做时它会在该行上抛出一个System.NullReferenceException
。以下内容适用于独立的 .NET 6.0 控制台应用程序,但不适用于作为 Hangfire 服务器工作人员的 .Net 6.0 控制台应用程序。
using (DirectoryEntry dirEntry = new DirectoryEntry(_adServer, _adUser, _adPass))
{
using (DirectorySearcher dirSearcher = new DirectorySearcher(dirEntry)) //Exception is thrown here.
{
dirSearcher.Filter = $"(&(objectClass=user)(SAMAccountName={username}))";
using (DirectoryEntry adUser = dirSearcher.FindOne().GetDirectoryEntry())
{
if (adUser == null)
{
throw new ArgumentException($"User with the username {username} does not exist!");
}
foreach (string property in adUser.Properties.PropertyNames)
{
Console.WriteLine($"{property}: {adUser.Properties[property].Value}");
}
}
}
}
我试过创建对象然后应用属性,但是异常发生在
dirSearcher.SearchRoot = dirEntry;
线。使用
DirectorySearcher
在即时窗口中创建一个 dirEntry
对象就可以了。
提前致谢。