System.DirectoryServices使用和限制

时间:2013-05-15 10:19:52

标签: c# asp.net .net-4.0 active-directory

在我的应用程序中,我需要从Active Directory获取用户电子邮件。

我遇到了System.DirectoryServices命名空间,用于访问Active Directory。我不知道它是如何工作的。我几乎没有问题。

我可以简单地使用此命名空间并使用正确的查询访问AD吗?有任何先决条件 比如访问LDAP等。

请让我知道这实际上是如何运作的

仅供参考我使用.net 4.0

1 个答案:

答案 0 :(得分:1)

如果您使用的是.NET 3.5及更高版本,则应查看System.DirectoryServices.AccountManagement(S.DS.AM)命名空间。在这里阅读所有相关内容:

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

// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
   // find a user
   UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

   if(user != null)
   {
      // do something here....      
   }

   // find the group in question
   GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");

   // if found....
   if (group != null)
   {
       // iterate over members
       foreach (Principal p in group.GetMembers())
       {
          Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName);
          // do whatever you need to do to those members
       }
    }
}

新的S.DS.AM让您可以轻松地与AD中的用户和群组一起玩!