EWS托管的API:用户A是否可以模拟Windows应用程序中的用户B?

时间:2019-02-26 17:26:30

标签: exchange-server exchangewebservices impersonation

我需要确定域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);     扔前 }

1 个答案:

答案 0 :(得分:0)

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