繁体   English   中英

获取广告组用户的电子邮件

[英]Get AD Group User's email

我们如何检索属于特定组的用户的电子邮件ID。 我有一个应用程序,需要在其中将电子邮件从sharepoint发送到安全组。 通过使用此代码,我得到了用户列表。

PrincipalContext principal = new PrincipalContext(ContextType.Domain);
GroupPrincipal groupPrincipal = GroupPrincipal.FindByIdentity(principal,  picker.DisplayText);
var members = groupPrincipal.GetMembers(true);

成员变量应返回组用户,因此我需要从此集合中选择每个用户的电子邮件ID。 请帮助我解决此问题。

有几种不同的方法可以做到这一点。 这是带有几行代码的两个简单选项。

如果您的UPN与您的电子邮件地址匹配,则可以执行以下操作:

var userEmails = new List<string>();
foreach (var member in members)
{
    userEmails.Add(member.UserPrincipalName);
}

如果那还不够严格,而您实际上想提取电子邮件,则最简单的方法可能是提取用户主体并阅读其电子邮件属性。

foreach (var member in members)
{
    var user = UserPrincipal.FindByIdentity(context, member.SamAccountName);
    userEmails.Add(user.EmailAddress);
}

如果您不喜欢这些选项,则可以提取DirectoryEntry或直接读取属性,但是除了速度之外,我不会走这些路线。

另外,请添加适当的错误处理等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM