1

我被要求在 WCF 中创建一个服务,其中输入是用户 EMAIL-ID。我的服务器中有很多可用的域。我的 WCF 服务托管在 xxx 域中。

I need to get all yyy groups (Domain groups) for the user whose email matches.

问题: 1. 我们可以从 C# 连接到活动目录 2. 如何从 C# 获取用户组。3. 仅用于用户验证,与 Active Directory 无关。(AD组简单搜索)

由于我是新手,即使我也不知道它是否可以从 C# 中获得。对此的早期答复是非常可观的。提前致谢。

4

1 回答 1

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);
                }
            }
        }
    }
}
于 2012-07-20T21:56:07.913 回答