1

我正在使用 Exchange Web 服务端点将 NodeJS 应用程序的登录信息集成到公司的 Active Directory 中。这样我可以验证提供的凭据(用户名和密码)是否与 Active Directory 用户的凭据匹配。

到目前为止,我能够成功验证用户名/密码对是否有效。我找不到解决方案是获取给定用户名的电子邮件地址。

我无法使用 LDAP 直接查询 Active Directory,因为 NodeJS 应用程序将托管在公司网络之外。一个可用的选项是使用 Exchange Web Services (2010) 端点。

我目前正在执行 ResolveNames 操作http://msdn.microsoft.com/en-us/library/exchange/aa563518(v=exchg.150).aspx

问题是使用用户名作为值的 ResolvenamesUnresolvedEntry将返回多个解决方案,例如,如果用户名是john并且目录中还有其他 johns,则Resolvenames查询也将返回这些解决方案。

我正在寻找一种使用 EWS 作为用户名(对应于用于查询 EWS SOAP 服务的有效凭据)来明确获取电子邮件地址的方法。

4

1 回答 1

1

从未遇到过提供登录用户电子邮件地址的直接方法,但是您可以通过创建 PostItem 然后通过其 PostItem.getFrom() 方法获取电子邮件地址来进行简单的破解,例如:

    PostItem postItem = new PostItem( service );
    postItem.setBody( MessageBody.getMessageBodyFromText("Test for email-address " ) );
    postItem.save();

    postItem = PostItem.bind( service , postItem.getId() ); 
    System.out.println( postItem.getFrom() );

    postItem.delete( DeleteMode.HardDelete );
于 2013-12-17T09:55:45.033 回答