4

(&(objectClass=user)(|(&(SAMAccountName=jdoe*))) 搜索过滤器无效。

我正在尝试通过他的用户名 jdoe 找到 John Doe 的用户帐户。我使用了这个搜索字符串的许多变体,它们都返回了这个错误。我究竟做错了什么?我正在像这样构建它:

var deSearch = new DirectorySearcher(de);
deSearch.Filter = string.Format("(&(objectClass=user)(|(&(SAMAccountName={0}*)))", uname);
SearchResult result = deSearch.FindOne();
4

2 回答 2

6

您需要关闭左括号:

(&(objectClass=user)(|(&(SAMAccountName=jdoe*))))
于 2013-08-22T17:47:55.117 回答
3

如果您使用的是 .Net 3.5 或更高版本,则可以使用 UserPrincipal 对象来获取用户信息,如下所示。

PrincipalContext pcontext = new PrincipalContext(ContextType.Domain, domainName);
UserPrincipal user = UserPrincipal.FindByIdentity(pcontext,IdentityType.SamAccountName, "UserName");
于 2013-08-22T17:49:16.303 回答