鉴于下面的代码
using (var context = new PrincipalContext(ContextType.Domain, SOME_DOMAIN))
using (UserPrincipal userPrincipal = new UserPrincipal(context) { Enabled = true })
using (PrincipalSearchResult<Principal> results = new PrincipalSearcher(userPrincipal).FindAll())
{
Console.WriteLine(results.Count());
}
using (var context = new PrincipalContext(ContextType.Domain, SOME_DOMAIN))
using (CustomUserPrinciple userPrincipal = new CustomUserPrinciple(context) { Enabled = true })
using (PrincipalSearchResult<Principal> results = new PrincipalSearcher(userPrincipal).FindAll())
{
Console.WriteLine(results.Count());
}
[DirectoryObjectClass("user")]
[DirectoryRdnPrefix("CN")]
public class CustomUserPrinciple : UserPrincipal
{
public CustomUserPrinciple(PrincipalContext context)
: base(context)
{
}
}
我预计计数是相同的,但是看起来使用自定义主体的搜索不会像第一次搜索那样只返回用户。结果包括其他活动目录对象类型,例如计算机。
这是设计使然,如果是这样,有没有办法可以限制自定义主体搜索只返回用户?