我被要求在WCF中创建一个服务,其中输入是用户EMAIL-ID。我的服务器中有许多域可用。我的WCF服务托管在xxx域中。
I need to get all yyy groups (Domain groups) for the user whose email matches.
问题: 1.我们可以从C#连接到Active目录吗? 2.如何从C#获取用户组。 3.它仅用于用户验证,与Active Directory无关。 (在AD组中进行简单搜索)
因为我是新手,所以即使我不知道它是否可以从C#中获取。对此的早期答复非常值得注意。提前谢谢。
答案 0 :(得分:0)
System.DirectoryServices.AccountManagement
命名空间正是您所需要的。
以下是一些可以帮助您入门的代码。
using System;
using System.DirectoryServices.AccountManagement;
namespace TestADCSharp
{
class Program
{
static void Main(string[] args)
{
PrincipalContext p = new PrincipalContext(
ContextType.Domain,
"your.domain"
);
UserPrincipal u = new UserPrincipal(p);
u.EmailAddress = "your@search.email";
PrincipalSearcher ps = new PrincipalSearcher(u);
PrincipalSearchResult<Principal> results = ps.FindAll();
foreach (Principal r in results) {
PrincipalSearchResult<Principal> groups = r.GetGroups();
Console.WriteLine("Groups:");
foreach (Principal g in groups) {
Console.WriteLine("\t" + g.Name);
}
}
}
}
}