我们使用sharepoint,在SP中我们有一个人员选择器,它在samaccountname上搜索,但也在名称上搜索。在dev上它工作正常,但是在prod上它有时会返回重复的结果。
我想知道是否有一个简单的应用程序,我可以对AD进行查询并查看结果。 (也许重复的用户实际上位于一个广告林中的不同域中。
我发现了这个,但它在c#中没有一个有效的例子 http://msdn.microsoft.com/en-us/library/ms973834.aspx
答案 0 :(得分:0)
我有两个片段:
using System.DirectoryServices.AccountManagement;
using System.DirectoryServices;
// Authentication
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, sDn))
{
// validate the credentials
bIsValid = pc.ValidateCredentials(sUsr, sPassword);
}
//List users
DirectorySearcher adsSearcher = new DirectorySearcher();
adsSearcher.Filter = string.Format(Parameters.ActiveDirectoryFilter, "*");
try
{
foreach (SearchResult sr in adsSearcher.FindAll())
{
string sUsrName = sr.GetDirectoryEntry().Properties["UserPrincipalName"].Value as string;
Console.WriteLine(string.Format("User : {0}", sUsrName));
}
}
当然,它需要两个引用(System.DirectoryServices和System.DirectoryServices.AccountManagement)。