识别要模拟的帐户
了解服务应用程序如何使用 EWS 来标识要模拟的用户。
服务应用程序使用以下三个标识符之一来标识要模拟的用户帐户:
主 SMTP 地址。
用户主体名称 (UPN) 。
SID) (安全标识符。
当然,使用的标识符取决于应用程序可用的信息。
标识要模拟的用户帐户
应用程序可以使用 EWS 托管 API 或 EWS SOAP 请求来标识它正在模拟的用户帐户。 EWS 托管 API 使用 ExchangeService.ImpersonatedUserId 属性来标识模拟用户。 EWS 使用 ExchangeImpersonation 元素,如以下 XML 片段所示。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
Identifier
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
以下每个部分都演示如何使用其中一个标识符。 有关显示操作中的模拟标识符的示例,请参阅 使用 Exchange 模拟添加约会。
使用 SMTP 电子邮件地址标识用户帐户
SMTP 电子邮件地址是与用户帐户关联的主电子邮件地址。
在 EWS 托管 API 应用程序中,指定 SMTP 电子邮件地址以及 ConnectionIdType.SMTP 枚举值。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SMTP, "alisa@contoso.com");
在 EWS SOAP 请求中, PrimarySmtpAddress 元素包含用户帐户的电子邮件地址。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>alisa@contoso.com</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
使用 UPN 标识用户帐户
UPN 包含用户帐户位置 (FQDN) 的完全限定域名。 这不一定是用户的邮箱域。 必须在 Active Directory 域服务 (AD DS) 中的用户帐户上正确设置 UserPrincipalName 属性,用户查找才能成功。
在 EWS 托管 API 应用程序中,指定 UPN 以及 ConnectingIdType.PrincipalName 枚举值。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, "alias@billing.contoso.com");
在 EWS SOAP 请求中, PrincipalName 元素 (ConnectingSIDType complexType) (EWS) 元素包含用户帐户的 UPN。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrincipalName>alisa@billing.contoso.com</t:PrincipalName>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
使用 SID 标识用户帐户
SID 是要以安全描述符定义语言 (SDDL) 形式模拟的帐户的标识符。
在 EWS 托管 API 应用程序中,指定 SID 以及 ConnectingIdType.SID 枚举值。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SID, "S-1-5-21-1493619105-1843311271-3936346804-1118");
在 EWS SOAP 请求中, SID 元素包含用户帐户的 SID。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:SID>S-1-5-21-1493619105-1843311271-3936346804-1118</t:SID>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>