【发布时间】:2020-11-04 18:11:19
【问题描述】:
我正在尝试通过 Windows 服务应用从 Windows 2016 服务上的 OU 检索用户(以将帐户同步到另一个服务)。
我有下面的代码来搜索 OU,然后将结果添加到列表中。
List<string> UserList = new List<string>();
PrincipalContext context = new PrincipalContext(ContextType.Domain, domain, OU);
UserPrincipal userqbe = new UserPrincipal(context);
PrincipalSearcher searcher = new PrincipalSearcher(userqbe);
foreach (var found in searcher.FindAll())
{
UserList.Add(found.EmailAddress);
}
我收到以下错误:
'Principal' 不包含 'EmailAddress' [...] 的定义(您是否缺少 using 指令或程序集引用?)
在那次错误之后,我引用了所需的程序集:
System.DirectoryServicesSystem.DirectoryServices.AccountManagent
并将它们包含在我的代码中:
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
关于用户原则类的microsoft documentation 确实显示了EmailAddress 属性。 DisplayName 等其他属性可以正常工作。
我在这里错过了什么?
【问题讨论】:
-
foreach (var found in searcher.FindAll().OfType<UserPrincipal>())? -
拼写很重要。 “校长”!=“原则”。
EmailAddress属性有两个 D,而您的问题标题EmailAdress缺少一个。 -
所以要么你的问题是“错别字”,要么你没有显示实际的错误信息。
-
@stuartd 解决了这个问题,添加它作为答案,我会接受它。
标签: c# windows-services directoryservices