使用 C# 获取广告组的电子邮件

Get Email of an AD Group using C#

我正在尝试使用 C# 获取广告组的电子邮件,下面是我的代码。

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, ADDomain))
{
    using (GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, ADGroup))
    {
        var sams = from x in grp.GetMembers(true) select new { x.SamAccountName, };
        var users = from sam in sams.Distinct()
                    let usr = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, sam.SamAccountName)
                    select new { usr.SamAccountName, usr.DisplayName, usr.EmailAddress };
    }
}

我可以知道如何将 usr.EmailAddress 分配给变量吗?

您正在创建一个匿名类型,这意味着属性将与您在 select 中分配的名称相同。假设您可以使用该列表中只有一个项目这个。

var result = users.SingleOrDefault()
if (result != null)
{
    var emailAddress = result.EmailAddress
}