我正在使用Exchange Web服务端点将NodeJS应用程序的登录集成到公司的Active Directory中。这样我就可以验证提供的凭据(用户名和密码)是否与Active Directory用户的凭据匹配。
到目前为止,我能够成功验证用户名/密码对是否有效。我找不到解决办法的方法是获取用户名的电子邮件地址。
我无法使用LDAP直接查询Active Directory,因为NodeJS应用程序将托管在公司网络之外。可用选项是使用Exchange Web服务(2010)端点。
我目前正在进行ResolveNames操作http://msdn.microsoft.com/en-us/library/exchange/aa563518(v=exchg.150).aspx
问题是,使用用户名作为UnresolvedEntry
值执行Resolvenames将返回多个Resolutions,例如,如果用户名为john
,并且目录中还有其他johns,{{ 1}}查询也将返回这些。
我正在寻找一种方法来明确地使用EWS获取用户名的电子邮件地址(对应于用于查询EWS SOAP服务的有效凭据)。
答案 0 :(得分: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 );