我正在尝试获取对某些用户的日历具有编辑或作者权限的代表列表。我尝试使用Exchange Web服务(EWS)API,但似乎没有正确级别的权限来查询。这是我正在使用的代码:
ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.Url = new Uri("https://mailurl/Exchange.asmx");
Mailbox mailbox = new Mailbox("some_user@some_domain.com");
var result = service.GetDelegates(mailbox, true);
上面的代码导致以下异常,我猜这是与权限相关的:“在商店中找不到指定的对象。”
作为替代,然后我尝试使用System.DirectoryServices命名空间(DirectoryEntry,DirectorySearcher和FindOne方法)来查询Active Directory(AD),以获取给定用户的委托列表。我找到了 publicdelegates 属性,但这似乎为我提供了所有委托人名称的列表,并且不包含有关每个委托人具有的特定权限级别的任何其他信息。我希望只获得具有编辑或作者权限的代表列表。
有什么建议吗?提前致谢。
答案 0 :(得分:0)
您可以使用Exchange命令行管理程序和Get-MailboxFolderPermission https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/get-mailboxfolderpermission?view=exchange-ps,这将允许您仅获取在Calendar Folder本身上设置的权限。使用上述委托的问题在于,这将仅捕获Outlook委托,但用户或管理员仍可能向用户明确授予文件夹权限。要从托管代码运行以上代码,您只需要类似https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/ff326159(v%3Dexchg.140)