我需要确定域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); 扔前 }
答案 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做到最好的是处理异常并提出纠正措施。