我有一个自定义应用程序,它有自己的数据库和通过EWS交换的连接。此应用程序的一部分是一个会议工具,允许用户导入交换会议并自动邀请也使用我的应用程序的其他用户。作为这个工具的一部分,我需要让我的会议保持最新的交流,基本上维护一个集中的会议存储。由于安全问题,我不能简单地存储用户的交换凭据,我也无法以任何重要方式自定义EWS服务器(即我无法添加委托访问权限)。
问题在于,我目前只是强迫所有用户在查看会议详细信息时登录EWS,并且它将查询EWS以使用该用户的EWS凭证获取详细信息并访问他们的会议副本。问题是无法保证任何用户具有与任何其他用户相同的会议详细信息。 As is partially explained here。有什么办法可以强制EWS FindItem调用只使用会议的公共(主)属性?即组织者发送/更新的会议版本。我只需要所有用户在查询同一会议时返回相同的详细信息。
我考虑过的一个解决方案是在会议导入我的应用程序时添加“bot”用户,然后只使用该bot的会议版本。但是,我真的更喜欢做一些不需要这个无关用户的“引擎盖”。
答案 0 :(得分:1)
有什么方法可以强制EWS FindItem调用仅使用会议的公共(主)属性
没有FindItem只会返回有关您尝试访问的文件夹中的内容的信息。您可能需要考虑使用GetUserAvailiblity来检查组织者https://msdn.microsoft.com/en-us/library/aa494212(v=exchg.80).aspx是否最接近。我想说,为了让您的应用程序正常工作,您需要一个至少具有每个用户日历的读取权限的服务帐户,然后您可以拨打电话以获取约会的组织者版本,该版本也将包含用户响应。如果您使用Office365,那么新的REST Api确实以更安全的方式促进了这一点,例如恶魔应用程序https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow/