Creating a new DirectorySearcher object with a DirectoryEntry as an argument throws NullReferenceException

问题描述 投票:0回答:0

我正在尝试使用现有的

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
对象就可以了。

提前致谢。

c# asp.net-core active-directory
© www.soinside.com 2019 - 2024. All rights reserved.