我需要获得存储在Active Directory的数据库中的用户的一些信息,我有一个简单的函数来做到这一点:SQL CLR存储过程来查询Active Directory
using (DirectoryEntry de = new DirectoryEntry("LDAP://ANYGIVENDOMAIN"))
{
using (DirectorySearcher adSearch = new DirectorySearcher(de))
{
adSearch.Filter = "(sAMAccountName=jdoe)";
SearchResult adSearchResult = adSearch.FindOne();
StringBuilder sb = new StringBuilder();
sb.AppendLine(adSearchResult.Properties["displayname"][0].ToString());
sb.AppendLine(adSearchResult.Properties["givenName"][0].ToString());
sb.AppendLine(adSearchResult.Properties["objectSid"][0].ToString());
sb.AppendLine(adSearchResult.Properties["description"][0].ToString());
sb.AppendLine(adSearchResult.Properties["objectGUID"][0].ToString());
}
}
从正在运行WinForm按我的意愿做,但在SQL Server项目类型中,我无法将名称空间System.DirectoryServices添加到引用。
任何人都知道为什么?
问候
JE
正如旁白 - 如果我是你,我就一定要** **检查是否一个给定的属性存在或不; 'if(adSearchResult.Properties [“...”]!= null)....'否则,你肯定会早晚得到一些空指针异常.... – 2010-10-26 20:29:44