C#以DOMAIN \ User格式获取所有ActiveDirectory用户

时间:2017-01-10 19:11:20

标签: c# active-directory

这可能是一个愚蠢的问题,但我以前从未查询过Active Directory用户,而且我没有域可以进行测试。所以我必须在客户环境中测试这个片段。现在,我有这个代码

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, domainName))
{
    using (PrincipalSearcher searcher = new PrincipalSearcher(new UserPrincipal(context)))
    {
        foreach (Principal result in searcher.FindAll())
        {
            Console.WriteLine("Principal Data");
            Console.WriteLine("Description: " + result.Description);
            Console.WriteLine("Display Name: " + result.DisplayName);
            Console.WriteLine("Distinguished Name: " + result.DistinguishedName);
            Console.WriteLine("Name: " + result.Name);
            Console.WriteLine("SAM Account Name: " + result.SamAccountName);
            Console.WriteLine("Structural Object Class: " + result.StructuralObjectClass);
            Console.WriteLine("User Principal Name: " + result.UserPrincipalName);
            Console.WriteLine("Context Data");
            Console.WriteLine("Connected Server: " + context.ConnectedServer);
            Console.WriteLine("Container: " + context.Container);
            Console.WriteLine("Name: " + context.Name);
            Console.WriteLine("UserName: " + context.UserName); 
            Console.WriteLine();
            Console.WriteLine("------------------------------------------------------------------");
            Console.WriteLine();
        }
    }
}

但是我没有找到以DOMAINNAME \ SAMUSERNAME格式引入用户的属性。如果我使用例如:

string.Format("{0}\\{1}", context.Name, result.SamAccountName);

我得到像 domainname.local \ samusername 这样的内容,但我希望它像 DOMAINNAME \ SAMUSERNAME 一样。我知道我可以做到

string.Format("DOMAINNAME\\{0}", result.SamAccountName);

但我不希望它被硬编码。

我也不确定是否使用

string.Format("{0}\\{1}", context.Name.Split(new string[] { "." }, StringSplitOptions.None)[0].ToUpper(), result.SamAccountName);

适用于任何情况。

这是针对会员用户管理页面,用户列表将让管理员选择然后向用户添加成员资格角色。我知道我需要添加搜索功能,但是现在我只是试图获得基本结果然后添加花哨的东西。

我想要的是可以在任何场景中使用的更通用的东西。怎么办呢。

希望任何人都可以给我一些灯光。提前谢谢。

此致

0 个答案:

没有答案