Active directory Active directory和exchange server-提取电子邮件地址

Active directory Active directory和exchange server-提取电子邮件地址,active-directory,exchange-server,Active Directory,Exchange Server,我有一个程序,试图从广告中提取以下优先级的电子邮件地址:邮件、电子邮件或userPrincipalName属性 一个拥有Microsoft exchange server的客户端告诉我提取了一个不正确的电子邮件地址,即userPrincpalName(显示在windows用户属性选项卡帐户的“用户登录名”字段中) 在AD explorer中,我已经证明邮件和电子邮件属性不会返回,因此软件会故障切换到userPrincipalName 客户端显示特定的广告访问帐户已勾选以下权限: 阅读帐户限制 阅

我有一个程序,试图从广告中提取以下优先级的电子邮件地址:邮件、电子邮件或userPrincipalName属性

一个拥有Microsoft exchange server的客户端告诉我提取了一个不正确的电子邮件地址,即userPrincpalName(显示在windows用户属性选项卡帐户的“用户登录名”字段中)

在AD explorer中,我已经证明邮件和电子邮件属性不会返回,因此软件会故障切换到userPrincipalName

客户端显示特定的广告访问帐户已勾选以下权限:

阅读帐户限制 阅读和交换信息 阅读和交流个人信息 阅读一般信息

但是,我们没有获得在windows用户属性常规选项卡中看到的电子邮件地址,电子邮件字段在AD中返回。我们没有在AD资源管理器中获得邮件/电子邮件广告属性

我在AD explorer中没有看到有关用户的正确电子邮件地址


有谁能帮我更好地理解这一点,或者我们如何才能获得正确的属性。

您要查找的字段名为“proxyAddresses”,它是一组字符串,显示为“SMTP:john”。doe@example.com;smtp:j。doe@example.com“

这意味着主交换地址是john。doe@example.com其他的(在这个例子中,只有j.doe,但是你可以有更多的地址)是次要的

您可以这样使用它们:

    /// <summary>
    /// Gets the exchange emails.
    /// </summary>
    /// <returns></returns>
    private IEnumerable<string> GetExchangeEmails()
    {
        return (from object property in Entry.Properties["proxyAddresses"] select property.ToString()).ToList();
    }
//
///获取交换电子邮件。
/// 
/// 
私有IEnumerable GetExchangeEmails()
{
返回(从Entry.Properties[“proxyAddresses”]中的object属性选择property.ToString()).ToList();
}

希望这能回答您的问题。

是的,谢谢,我认为您是正确的,我已经找到了支持这一点的信息