【发布时间】:2017-07-31 12:10:24
【问题描述】:
我的网络服务目前正在进行基本的用户名/密码验证,以便订阅交换用户以接收如下事件(如新邮件事件等):
var service = new ExchangeService(exchangeVersion)
{
KeepAlive = true,
Url = new Uri("some autodiscovery url"),
Credentials = new NetworkCredential(username, password)
};
var subscription = service.SubscribeToPushNotifications(
new[] { inboxFolderFoldeID },
new Uri("some post back url"),
15,
null,
EventType.NewMail,
EventType.Created,
EventType.Deleted,
EventType.Modified,
EventType.Moved,
EventType.Copied);
现在,我应该替换身份验证机制以使用 OAuth 协议。我看到了一些示例,但所有示例似乎都在谈论对客户端进行身份验证(https://msdn.microsoft.com/en-us/library/office/dn903761%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396),但我无法找到如何使用 OAuth 协议对交换用户进行身份验证的示例。任何代码示例都会有很大帮助。谢谢。
【问题讨论】:
-
在调查 EWS 的 oauth 时出现的另一件事是,它仅适用于 Office 365,不适用于 Exchange 服务器。 msdn.microsoft.com/en-us/library/office/… 表示“EWS 的 OAuth 身份验证仅作为 Office 365 的一部分在 Exchange 中可用。EWS 应用程序需要“完全访问用户邮箱”权限。”
-
不幸的是,没有一个链接谈到如何让它与 EWS 托管 API 一起工作。我在问题中发布的 msdn url 似乎没有对用户进行身份验证,而只是授权客户端似乎
-
是的,但这似乎基于 REST API,如果可能,我想使用 EWS 托管 API。但如果不是,我想这将是我最后的选择。
标签: c# oauth exchangewebservices