从Active Directory PrincipalContext获取所有用户
我使用以下代码来访问我的AD中的用户列表,但是在我将用户添加到combobox的行中,我得到一个空引用exception。
PrincipalContext AD = new PrincipalContext(ContextType.Domain, "mydomainip"); UserPrincipal u = new UserPrincipal(AD); PrincipalSearcher search = new PrincipalSearcher(u); foreach (UserPrincipal result in search.FindAll()) { if (result.DisplayName != null) { comboBox2.Items.Add(result.DisplayName); } }
知道我做错了什么吗?
我用Console.WriteLine(result.DisplayName)
替换了combobox,它工作正常。
不是100%确定这是否是问题 – 但是PrincipalSearcher
确实返回了Principal
对象列表。
因此,如果 – 无论出于何种原因 – 您的搜索者将返回不是 UserPrincipal
,那么您的对象result
将为null – 而不是.DisplayName
属性。
所以你应该把你的检查改为:
foreach (UserPrincipal result in search.FindAll()) { if (result != null && result.DisplayName != null) { comboBox2.Items.Add(result.DisplayName); } }