使用 EWS(不是托管 API)进行模拟

Posted

技术标签:

【中文标题】使用 EWS(不是托管 API)进行模拟【英文标题】:Impersonation using EWS (not the Managed API) 【发布时间】:2015-11-16 19:29:56 【问题描述】:

是否可以在不使用托管 API 的情况下在 EWS 中使用模拟?

我阅读了this 页面,但似乎没有帮助。

我希望能够通过发送 SOAP 请求而不是使用托管 API 在用户的日历上创建事件。

【问题讨论】:

【参考方案1】:

确定使用 Impersonation 只涉及设置 Impersonation SOAP 标头,例如

<soap:Header>
  <t:ExchangeImpersonation>
    <t:ConnectingSID>
      <t:PrimarySmtpAddress>alisa@contoso.com</t: PrimarySmtpAddress>
    </t:ConnectingSID>
  </t:ExchangeImpersonation>
</soap:Header>

我建议https://msdn.microsoft.com/en-us/library/office/dn722378(v=exchg.150).aspx 是一个更好的参考

干杯 格伦

【讨论】:

太棒了,谢谢@Glen!还有一个问题:在我发送这个请求之前是否需要经过一些身份验证过程,或者我是否只需发送这个 SOAP 请求就可以预约出现? 必须先通过 RBAC 启用模拟msdn.microsoft.com/en-us/library/office/…,否则您将收到一条错误消息,指出不允许模拟。身份验证与任何其他 EWS 请求(例如 Basic 或 NTLM)相同。 我想我的问题应该是“我可以通过发送 SOAP 请求而不是 C# API 进行身份验证”。我认为这是可能的,但在 MSDN 参考资料中找不到示例。抱歉,如果这是一个愚蠢的问题,但这对我来说是全新的领域。再次感谢您的所有帮助,@Glen Scales。 是的,但是 SOAP 只是您的请求的有效负载,没有在 SOAP 中设置身份验证,身份验证标头与任何其他 http 请求相同,因此您可以使用任何您想要的库/语言。根据您的 Exchange 设置方式,它可能会接受基本身份验证,或者可能需要您使用 NTLM,后者在某些开源库中使用起来会有些困难。

以上是关于使用 EWS(不是托管 API)进行模拟的主要内容,如果未能解决你的问题,请参考以下文章

EWS 托管 API 双跳

使用 EWS 托管 API 创建共享邮箱

如何使用 EWS 托管 API 从 Microsoft Exchange 检索所有联系人?

如何使用 EWS 托管 API 2.0 创建笔记

使用 EWS 托管 API 读取自定义列

Folder.WellKnownFolderName 在 EWS 托管 API 和 Exchange 2013 中为空