Active directory 为给定MAPI/Exchange用户获取Active Directory对象的最直接方法是什么?

Active directory 为给定MAPI/Exchange用户获取Active Directory对象的最直接方法是什么?,active-directory,ldap,exchange-server,mapi,Active Directory,Ldap,Exchange Server,Mapi,我正在尝试从Outlook COM加载项中查询MAPI收件人的Active Directory属性。这是我第一次处理广告查询,目前为止我发现的唯一方法似乎并不完全理想,因此,如果在我开始实施该方法之前,有更多经验的人能加入进来,那就太好了 下面是我的想法: 读取收件人的PR\u EMAIL\u ADDRESS\u WMAPI属性的值 使用IDirectorySearch查找其legacyExchangeDN属性与该值匹配的LDAP条目 这似乎已经够直截了当了,概念证明也在起作用,但是: 我已经

我正在尝试从Outlook COM加载项中查询MAPI收件人的Active Directory属性。这是我第一次处理广告查询,目前为止我发现的唯一方法似乎并不完全理想,因此,如果在我开始实施该方法之前,有更多经验的人能加入进来,那就太好了

下面是我的想法:

  • 读取收件人的
    PR\u EMAIL\u ADDRESS\u W
    MAPI属性的值
  • 使用
    IDirectorySearch
    查找其
    legacyExchangeDN
    属性与该值匹配的LDAP条目
  • 这似乎已经够直截了当了,概念证明也在起作用,但是:

    • 我已经有一个唯一的ID-为什么我必须进行实际的搜索?是否应该有一些直接访问AD用户对象的方法,例如,通过某种方式使用我关于收件人的信息来构造LDAP路径,我可以简单地传递到
      ADsGetObject()
    • 属性名称中的术语“遗留”意味着这可能不是一个好的长期战略
    • 上面的列表中实际上缺少一个步骤:在使用
      IDirectorySearch
      之前,我需要确定要搜索的根容器。现在我正在查询“
      LDAP://rootDSE
      ”,然后请求“
      defaultNamingContext
      ”属性来制定一个新的查询。这是普遍安全的吗?例如,当我的外接程序的Outlook 2010主机连接到多个不同的Exchange服务器,并且我需要查询的收件人不是来自默认服务器时,这是否也有效

    FWIW,我正在使用优秀的库访问扩展的MAPI层,因此我实际上不是在使用
    IMailUser
    ,而是在使用
    iadressentry
    。因此,如果有更好的方法来完成我在该库中尝试完成的工作,请随意提出建议。

    里面有很多问题,但这里是

    总体而言,您的概念和流程是正确的。您必须记住,Active Directory和Exchange是两个不同的系统。他们是紧密结合的,但你仍然需要搜索广告来找到他们的帐户。MAPI早于Active Directory,并且在这个托管框架世界中没有很好地老化,这一点毫无帮助,因此,除非赎回中内置了某种东西来为您获取广告用户,否则您只能靠自己了

    啊,LegacyEdn。听起来有更好的办法,对吧?没有。自首次发布Active Directory时的Windows 2000以来,该属性一直是AD帐户和Exchange邮箱之间的主链接。这是在Active Directory中查找邮箱用户的最佳方法。使用安全

    你的最后一个项目很复杂,这是你自己的问题。对于95%的Exchange和Active Directory安装,假设您的加载项在现场使用或通过VPN使用,那么您的安装方式很好。但其他5%的情况非常复杂。您可以使用Exchange进行一些疯狂的设置,范围从不同的域到不同的林以及托管的Exchange环境。老实说,如果您需要能够从任何配置查询广告,我会问这是因为它自己的问题


    最后,对于大多数企业局域网情况,您可能都可以。托管Exchange将导致问题,因为您通常无法访问支持的Active Directory。

    其中有很多问题,但下面是问题

    总体而言,您的概念和流程是正确的。您必须记住,Active Directory和Exchange是两个不同的系统。他们是紧密结合的,但你仍然需要搜索广告来找到他们的帐户。MAPI早于Active Directory,并且在这个托管框架世界中没有很好地老化,这一点毫无帮助,因此,除非赎回中内置了某种东西来为您获取广告用户,否则您只能靠自己了

    啊,LegacyEdn。听起来有更好的办法,对吧?没有。自首次发布Active Directory时的Windows 2000以来,该属性一直是AD帐户和Exchange邮箱之间的主链接。这是在Active Directory中查找邮箱用户的最佳方法。使用安全

    你的最后一个项目很复杂,这是你自己的问题。对于95%的Exchange和Active Directory安装,假设您的加载项在现场使用或通过VPN使用,那么您的安装方式很好。但其他5%的情况非常复杂。您可以使用Exchange进行一些疯狂的设置,范围从不同的域到不同的林以及托管的Exchange环境。老实说,如果您需要能够从任何配置查询广告,我会问这是因为它自己的问题

    最后,对于大多数企业局域网情况,您可能都可以。托管Exchange将导致问题,因为您通常无法访问备份Active Directory