【问题标题】:EWS managed API: Is user A able to impersonate User B in a windows app?EWS 托管 API:用户 A 是否能够在 Windows 应用程序中模拟用户 B?
【发布时间】:2019-07-20 07:41:53
【问题描述】:

我需要确定域 UserA(当前正在运行 Windows 桌面应用程序)是否有权在 Exchange 中模拟其他用户,例如 UserB。

我可以尝试做一些事情,比如阅读 UserB 的收件箱消息,但我正在寻求一种更简洁的方法。

有没有办法加载 UserA 的 Exchange 角色并寻找 ApplicationImpersonation 或其他东西?

所以设置是这样的:

ExchangeService service = new ExchangeService(exchangeVersion);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl(userEmail);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, UserToImpersonate);

// 寻找这样的东西:

如果 (!service.CanImpersonate(userEmail, UserToImpersonate) ) { 异常 ex = new Exception(userEmail + "不能模拟" + UserToImpersonate); 扔前; }

【问题讨论】:

    标签: exchange-server exchangewebservices impersonation


    【解决方案1】:

    如果不使用 EWS,您需要使用 Exchange 命令行管理程序 cmdlet https://docs.microsoft.com/en-us/powershell/module/exchange/role-based-access-control/get-managementroleassignment?view=exchange-ps 检查是否为特定用户启用了应用程序模拟。 EWS 是一个邮箱 API,您所说的设置是一种管理设置,因此您可以使用 EWS 做的最好的事情是处理异常并建议纠正措施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多