C# 如何使用激活用户、电子邮件或电话号码和用户名为Active Directory用户构建QBE?
我使用Active Directory。我编写了一种方法,可以使用过滤器从Active Directory获取所有用户,并在我的C# 如何使用激活用户、电子邮件或电话号码和用户名为Active Directory用户构建QBE?,c#,asp.net,arraylist,active-directory,C#,Asp.net,Arraylist,Active Directory,我使用Active Directory。我编写了一种方法,可以使用过滤器从Active Directory获取所有用户,并在我的下拉列表的阵列列表中列出用户 守则: private ArrayList GetReceiverList(string Domain) { ArrayList List = new ArrayList(); DirectoryEntry Entry = new DirectoryEntry(Domai
下拉列表的阵列列表中列出用户
守则:
private ArrayList GetReceiverList(string Domain)
{
ArrayList List = new ArrayList();
DirectoryEntry Entry = new DirectoryEntry(Domain);
string filter = "(&(objectClass=user)(objectCategory=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(sn=*)(|(telephoneNumber=*)(mail=*))(cn=*))";
DirectorySearcher Searcher = new DirectorySearcher(Entry, filter);
foreach (SearchResult usr in Searcher.FindAll())
{
List.Add(GetLdapProperty(usr, "displayName"));
}
return List;
}
这项工作,我现在想使用System.DirectoryServices.AccountManagement
,为此我写了一个方法,这也很有效。但是我想在我的第一个方法中使用过滤器。我怎么能做到
我的新方法的代码是:
public static ArrayList GetAllActiveDirectoryUsersByDisplayName(string dc)
{
ArrayList list = new ArrayList();
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, dc);
UserPrincipal u = new UserPrincipal(ctx);
u.Surname = "*";
PrincipalSearcher ps = new PrincipalSearcher(u);
PrincipalSearchResult<Principal> results = ps.FindAll();
foreach (UserPrincipal usr in results)
{
list.Add(usr.Name);
}
list.Sort();
return list;
}
您要为公共静态ArrayList GetAllActiviteDirectoryUsersByDisplayName(字符串dc)传递什么值?dc
等于什么?例如(company.com)这是域控制器我没有得到错误我只想要第一个方法的过滤器的结果。。。我现在得到所有用户,但我只想激活用户的电子邮件或电话号码等。。。查看我的更新:p您需要输入samAccount名称并进行搜索,或者您必须更改fliter为什么要使用ArrayList
。它已经过时了。如果需要任意对象的列表,则应使用list
。
string filter = "(&(objectClass=user)(objectCategory=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(sn=*)(|(telephoneNumber=*)(mail=*))(cn=*))";