我是使用C#的新手,這是我第二次將它與活動目錄結合使用。我不斷收到錯誤:對象引用未設置爲對象的實例。以下是我的代碼。我知道我的空引用是在var result = searcher.FindOne();
行我不確定我需要做什麼來解決這個問題。C#搜索Active Directory錯誤
static void Main(string[] args)
{
List<string> userList = new List<string>();
try
{
string[] newUsers = { List of users is here ex: [email protected], [email protected], ... };
PrincipalContext AD = new PrincipalContext(ContextType.Domain, "xyz.com");
UserPrincipal u = new UserPrincipal(AD);
PrincipalSearcher search = new PrincipalSearcher(u);
DirectorySearcher searcher = new DirectorySearcher();
foreach (string x in newUsers)
{
searcher.Filter = string.Format("(&(objectCategory=person)(anr={0}))", x);
var result = searcher.FindOne();
userList.Add(string.Format("{0} {1}", result.Properties["DisplayName"][0].ToString(), result.Properties["Company"][0].ToString()));
search.Dispose();
}
foreach(string y in userList)
{
Console.WriteLine(y);
}
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
}
File.WriteAllLines(file location, userList);
}
可能重複[什麼是一個NullReferenceException,如何解決呢?(http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i -fix-it) –
你是否嘗試過調試?這是找出發生異常的代碼行的非常確定的方法。 – Jim
您不檢查search.FindOne()返回null,如果您的數組中的某個用戶名被錯誤地指定,它可能會執行此操作。 –