【发布时间】:2020-09-12 17:21:39
【问题描述】:
我目前正在开发一个仅在工作中在内部使用的应用程序。我需要获取当前登录用户的联系人以在应用程序中使用,我目前正在获取以下联系人:
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace NameSpace = app.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder ContactsFolder = NameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
Microsoft.Office.Interop.Outlook.Items ContactItems = ContactsFolder.Items;
foreach (Microsoft.Office.Interop.Outlook.ContactItem item in ContactItems)
{
//do stuff with the contacts here
}
这种方法的问题在于,每当用户打开应用程序但 Outlook 尚未打开时,就会出现一个 Outlook 弹出窗口,要求用户允许或拒绝应用程序访问 Outlook 联系人。这是不必要的,我唯一想到的如何阻止这种形式的发生不是使用 Outlook 本身,而是从 Exchange Server 获取联系人。
我已经查看了诸如 EWS 之类的大量文档,但是我没有找到 EWS 的参考资料可以保证与 Exchange 2019 一起使用。我还希望根据当前登录用户的域身份验证自动完成任何身份验证要求用户输入密码。
我确实尝试过使用它:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/get-started-with-ews-managed-api-client-applications 但是ExchangeVersion 只有 Exchange 2013 的选项。
我应该使用什么来实现这一点?任何朝着正确方向的推动将不胜感激。
【问题讨论】:
标签: c# asp.net outlook exchange-server exchange-server-2019