在我的应用程序中,我需要从Active Directory获取用户电子邮件。
我遇到了System.DirectoryServices
命名空间,用于访问Active Directory。我不知道它是如何工作的。我几乎没有问题。
我可以简单地使用此命名空间并使用正确的查询访问AD吗?有任何先决条件 比如访问LDAP等。
请让我知道这实际上是如何运作的
仅供参考我使用.net 4.0
答案 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中的用户和群组一起玩!