从电子邮件获取广告组名称

时间:2019-10-14 11:52:28

标签: c# active-directory

我想知道,是否可以从该组的电子邮件地址中以语法方式获得AD组(名称)(电子邮件的左侧部分与该组名称不匹配)?

我的代码中需要GroupPrincipal.FindByIdentity(ctx,groupName); 但是似乎无法将电子邮件作为输入。它仅与输入中的组名一起使用。还有第三个参数-身份类型枚举,但该值似乎与电子邮件地址无关。

存在任何解决方案如何获取组名(类似于Outlook的方法(输入电子邮件,然后按Ctrl + K)显示组名:)吗?)

1 个答案:

答案 0 :(得分:2)

通常来说,启用了Active Directory邮件的帐户应具有 proxyAdresses LDAP属性,因此应该可以使用简单的查询,即:

var searchedEmail = "user@domain.com";
var ds = new DirectorySearcher($"proxyAddresses=smtp:{searchedEmail}", new string[] { "cn" });
Console.WriteLine(ds.FindOne().Properties["cn"][0]);