使用Exchange EWS SOAP,如何获取给定用户名的电子邮件地址

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

到目前为止,我能够成功validation用户名/密码对是否有效。 我无法find解决scheme是获得给定用户名的电子邮件地址。

由于NodeJS应用程序将托pipe在公司networking之外,因此我无法直接使用LDAP查询Active Directory。 可用的选项是使用Exchange Web服务(2010)端点。

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

问题是使用用户名作为UnresolvedEntry值Resolvenames将返回几个解决scheme,例如,如果用户名是john ,目录中也有其他约翰, Resolvenames查询也将返回这些。

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

从来没有遇到过给出login用户的电子邮件地址的直接方法,但是可以通过创buildPostItem然后通过其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 ); 
Interesting Posts