2012-03-28 258 views
0

我们使用sharepoint,在SP中我们有一个人员选择器,它在samaccountname上进行搜索,但也在名称上进行搜索。在dev上它工作正常,但在产品上它有时会返回重复的结果。AD测试工具

我不知道是否有一个简单的应用程序,我可以查询AD并查看结果。 (可能是重复的用户是真正在一个广告的森林什么不同的域

我发现了这一点,但它没有在C# http://msdn.microsoft.com/en-us/library/ms973834.aspx

+0

你应该使用'ldapsearch',它是用于查询目录SERV标准的命令行工具呃。 'ldapsearch'与目录服务器软件一起分发并且广泛可用。有关更多信息,请参见[“使用ldapsearch”](http://ff1959.wordpress.com/2011/07/27/mastering-ldapsearch/)。在写入任何其他代码之前,应使用此工具验证参数和假设。 – 2012-03-28 12:36:26

回答

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)。