连接到Active Directory以使用C#检索用户详细信息

时间:2011-04-22 08:14:57

标签: visual-studio-2010 c#-4.0 active-directory

我发现了一篇关于从here

获取活动目录中用户的文章

所以我的代码可能会喜欢这个

String strPath = "format of this path";
DirectoryEntry entry = null;
entry = new DirectoryEntry(strPath);

DirectorySearcher mySearcher = new DirectorySearcher(entry);

mySearcher.Filter = ("ObjectCategory=user");

foreach (SearchResult result in mySearcher.FindAll())
{
    String strName = result.GetDirectoryEntry().Name;
    //Do whatever
}

你能在这里解释strPath吗?这是什么格式?

注意:我知道我的服务器信息可以使用我的本地IP“198.168.1.182”进行测试。

我不确定我的想法是否正确。

请帮助!!!

2 个答案:

答案 0 :(得分:5)

由于您使用的是.NET 4,因此您一定要查看System.DirectoryServices.AccountManagement(S.DS.AM)命名空间。在这里阅读所有相关内容:

Managing Directory Security Principals in the .NET Framework 3.5

基本上,您可以定义域上下文并轻松在AD中查找用户和/或组:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find user by name
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "John Doe");

// if we found user - inspect its details
if(user != null)
{
    string firstName = user.GivenName;
    string lastName = user.Surname;
    string email = user.EmailAddress;
    string phone = user.VoiceTelephoneNumber;
}

新的S.DS.AM使得在AD中使用用户和群组变得非常容易:

答案 1 :(得分:1)

strPath是LDAP URL,可在此处找到更多信息: http://en.wikipedia.org/wiki/LDAP#LDAP_URLs

该结构起初可能看起来有点奇怪,但维基百科的例子给出了一个很好的总结。