Node.js 使用Exchange EWS SOAP,如何获取给定usename的电子邮件地址

Node.js 使用Exchange EWS SOAP,如何获取给定usename的电子邮件地址,node.js,exchange-server,exchangewebservices,Node.js,Exchange Server,Exchangewebservices,我正在使用Exchange Web Services端点将NodeJS应用程序的登录集成到公司的Active Directory。通过这种方式,我可以验证提供的凭据(用户名和密码)是否与Active Directory用户的凭据匹配 到目前为止,我能够成功验证用户名/密码对是否有效。我找不到一个解决方案,就是给电子邮件地址一个用户名 我无法直接使用LDAP查询Active Directory,因为NodeJS应用程序将托管在公司网络之外。一个可用的选项是使用Exchange Web Servic

我正在使用Exchange Web Services端点将NodeJS应用程序的登录集成到公司的Active Directory。通过这种方式,我可以验证提供的凭据(用户名和密码)是否与Active Directory用户的凭据匹配

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

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

我目前正在执行ResolveNames操作

问题是,使用用户名作为
unsolvedEntry
值执行Resolvenames将返回多个解析,例如,如果用户名是
john
,并且目录中还有其他john,则
Resolvenames
查询也将返回这些解析


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

从未遇到过提供登录用户电子邮件地址的直接方法,但您可以通过创建positem,然后通过positem.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 );

从未遇到过提供登录用户电子邮件地址的直接方法,但您可以通过创建positem,然后通过positem.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 );

你能举个例子说明你在做什么吗?