【问题标题】:Get Mailbox Permissions using EWS使用 EWS 获取邮箱权限
【发布时间】:2015-05-28 14:47:34
【问题描述】:

我正在创建一个需要获取每个邮箱权限的应用程序,但我似乎无法让它工作。我在 VS 对象浏览器中注意到 Permissions 属性在 Folder 类上。

所以我猜我需要获取MailBox 对象,然后获取根/默认文件夹,这样我才能获取权限。

这是我到目前为止所做的,但是当它调用 Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId); 时,我得到以下异常:

"客户端访问服务器版本与访问的不匹配 资源的邮箱服务器版本。”

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
string exchangeServerWebServicesUrl = "https://example.com/EWS/Exchange.asmx";
service.Url = new Uri(exchangeServerWebServicesUrl);

string username = "*********************";
string password = "*********************";

service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials(username, password);

Mailbox sharedMailbox = new Mailbox("shared@example.com");

FolderId sharedMailboxRootFolderId = new FolderId(WellKnownFolderName.Root, sharedMailbox);
Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId);

var permissions = rootfolder.Permissions;

我尝试传入不同的 ExchangeVersion 枚举值,但它们也不起作用。但是当我尝试获取公用文件夹根文件夹时,传递 ExchangeVersion.Exchange2007_SP1 确实有效。

Folder rootfolder = Folder.Bind(service, WellKnownFolderName.PublicFoldersRoot);

那么问题是如何使用 EWS 获得 MailBoxes 权限?

【问题讨论】:

    标签: c# exchangewebservices


    【解决方案1】:

    我刚刚发现 Find out which users have Full Access on a mailbox 帖子说

    您不能使用 EWS(或任何 Exchange 邮箱 API) 只访问文件夹级别的 DACL,您需要阅读的是 只能通过 Exchange 访问的邮箱 DACL 命令行管理程序 (Get-MailboxPermissions) 或通过阅读 来自 Active Directory 的 msexchmailboxsecuritydescriptor。

    因此,使用 EWS 似乎无法获得邮箱权限。 耻辱。

    【讨论】:

      猜你喜欢
      • 2018-02-02
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2014-01-05
      • 2023-03-18
      相关资源
      最近更新 更多