c# - 使用 EWS 获取邮箱权限

标签 c# exchangewebservices

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

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

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

"The Client Access Server version does not match the accessed resource's Mailbox Server version."

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 枚举值,但它们也不起作用。但是当我尝试获取公共(public)文件夹根文件夹时,传递 ExchangeVersion.Exchange2007_SP1 确实有效。

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

所以问题是如何使用 EWS 获得邮箱权限?

最佳答案

我刚刚找到了 Find out which users have Full Access on a mailbox帖子说

You can't using EWS (or any of the Exchange Mailbox API's) you can only access the Folder level DACL's what you need to read is the Mailbox DACL which can only be either accessed via the Exchange Management Shell (Get-MailboxPermissions) or via reading the msexchmailboxsecuritydescriptor from Active Directory.

因此看起来无法使用 EWS 获取邮箱权限。 耻辱。

关于c# - 使用 EWS 获取邮箱权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509909/

相关文章:

Node.js 与 MS Exchange EWS 集成

directory - 如何查找收件箱中是否存在文件夹,如果不存在则创建

java - 带有 GMail 的 Microsoft Exchange

c# - IServiceLocator.GetInstance(Type) 的意图与 IServiceProvider.GetService(Type) 的意图有何不同?

exchange-server - Exchange Web Service 与 Exchange ActiveSync(或者当您可以免费获得奶牛时,为什么还要购买牛奶?)

c# - 在 UWP 应用程序中存储 API key 和 secret 的推荐方法是什么?

c# - EF 4.1 - 代码优先 - JSON 循环引用序列化错误

c# - 使用 Exchange EWS... 不知道如何访问 dll?

c# - 如何使用反射获取类的所有静态属性及其值

c# - 无法运行在运行时设置 DbContext 连接字符串并将项目与应用程序分开的 EF 迁移